diff options
48 files changed, 2618 insertions, 2046 deletions
diff --git a/dist/css/bootstrap-grid.css.map b/dist/css/bootstrap-grid.css.map index 27f4d2476f..a5ca1f9edf 100644 --- a/dist/css/bootstrap-grid.css.map +++ b/dist/css/bootstrap-grid.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"AAAA;;;;;ECKE;ADEF;EACE,sBAAsB;EACtB,6BAA6B;ACA/B;;ADGA;;;EAGE,mBAAmB;ACArB;;ACVE;ECAA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;AFcnB;;AGqCI;EFvDF;ICYI,gBE8LK;EJnLT;AACF;;AG+BI;EFvDF;ICYI,gBE+LK;EJ9KT;AACF;;AGyBI;EFvDF;ICYI,gBEgMK;EJzKT;AACF;;AGmBI;EFvDF;ICYI,iBEiMM;EJpKV;AACF;;AC9BE;ECZA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;AF8CnB;;AC5BE;ECJA,aAAa;EACb,eAAe;EACf,mBAA0B;EAC1B,kBAAyB;AFoC3B;;AC7BE;EACE,eAAe;EACf,cAAc;ADgClB;;AClCE;;EAMI,gBAAgB;EAChB,eAAe;ADiCrB;;AKlEE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;AL0E7B;;AKvDM;EACE,aAAa;EACb,YAAY;EACZ,eAAe;AL0DvB;;AKxDM;EACE,cAAc;EACd,WAAW;EACX,eAAe;AL2DvB;;AKvDQ;EHFN,mBAAsC;EAItC,oBAAuC;AF0DzC;;AK5DQ;EHFN,oBAAsC;EAItC,qBAAuC;AF+DzC;;AKjEQ;EHFN,aAAsC;EAItC,cAAuC;AFoEzC;;AKtEQ;EHFN,oBAAsC;EAItC,qBAAuC;AFyEzC;;AK3EQ;EHFN,oBAAsC;EAItC,qBAAuC;AF8EzC;;AKhFQ;EHFN,aAAsC;EAItC,cAAuC;AFmFzC;;AKrFQ;EHFN,oBAAsC;EAItC,qBAAuC;AFwFzC;;AK1FQ;EHFN,oBAAsC;EAItC,qBAAuC;AF6FzC;;AK/FQ;EHFN,aAAsC;EAItC,cAAuC;AFkGzC;;AKpGQ;EHFN,oBAAsC;EAItC,qBAAuC;AFuGzC;;AKzGQ;EHFN,oBAAsC;EAItC,qBAAuC;AF4GzC;;AK9GQ;EHFN,cAAsC;EAItC,eAAuC;AFiHzC;;AK9GM;EAAwB,SAAS;ALkHvC;;AKhHM;EAAuB,SD2KG;AJvDhC;;AKjHQ;EAAwB,QADZ;ALsHpB;;AKrHQ;EAAwB,QADZ;AL0HpB;;AKzHQ;EAAwB,QADZ;AL8HpB;;AK7HQ;EAAwB,QADZ;ALkIpB;;AKjIQ;EAAwB,QADZ;ALsIpB;;AKrIQ;EAAwB,QADZ;AL0IpB;;AKzIQ;EAAwB,QADZ;AL8IpB;;AK7IQ;EAAwB,QADZ;ALkJpB;;AKjJQ;EAAwB,QADZ;ALsJpB;;AKrJQ;EAAwB,QADZ;AL0JpB;;AKzJQ;EAAwB,SADZ;AL8JpB;;AK7JQ;EAAwB,SADZ;ALkKpB;;AKjKQ;EAAwB,SADZ;ALsKpB;;AK/JU;EHTR,sBAA8C;AF4KhD;;AKnKU;EHTR,uBAA8C;AFgLhD;;AKvKU;EHTR,gBAA8C;AFoLhD;;AK3KU;EHTR,uBAA8C;AFwLhD;;AK/KU;EHTR,uBAA8C;AF4LhD;;AKnLU;EHTR,gBAA8C;AFgMhD;;AKvLU;EHTR,uBAA8C;AFoMhD;;AK3LU;EHTR,uBAA8C;AFwMhD;;AK/LU;EHTR,gBAA8C;AF4MhD;;AKnMU;EHTR,uBAA8C;AFgNhD;;AKvMU;EHTR,uBAA8C;AFoNhD;;AGzMI;EE9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;EL2OrB;EKzOI;IACE,cAAc;IACd,WAAW;IACX,eAAe;EL2OrB;EKvOM;IHFN,mBAAsC;IAItC,oBAAuC;EFyOvC;EK3OM;IHFN,oBAAsC;IAItC,qBAAuC;EF6OvC;EK/OM;IHFN,aAAsC;IAItC,cAAuC;EFiPvC;EKnPM;IHFN,oBAAsC;IAItC,qBAAuC;EFqPvC;EKvPM;IHFN,oBAAsC;IAItC,qBAAuC;EFyPvC;EK3PM;IHFN,aAAsC;IAItC,cAAuC;EF6PvC;EK/PM;IHFN,oBAAsC;IAItC,qBAAuC;EFiQvC;EKnQM;IHFN,oBAAsC;IAItC,qBAAuC;EFqQvC;EKvQM;IHFN,aAAsC;IAItC,cAAuC;EFyQvC;EK3QM;IHFN,oBAAsC;IAItC,qBAAuC;EF6QvC;EK/QM;IHFN,oBAAsC;IAItC,qBAAuC;EFiRvC;EKnRM;IHFN,cAAsC;IAItC,eAAuC;EFqRvC;EKlRI;IAAwB,SAAS;ELqRrC;EKnRI;IAAuB,SD2KG;EJ2G9B;EKnRM;IAAwB,QADZ;ELuRlB;EKtRM;IAAwB,QADZ;EL0RlB;EKzRM;IAAwB,QADZ;EL6RlB;EK5RM;IAAwB,QADZ;ELgSlB;EK/RM;IAAwB,QADZ;ELmSlB;EKlSM;IAAwB,QADZ;ELsSlB;EKrSM;IAAwB,QADZ;ELySlB;EKxSM;IAAwB,QADZ;EL4SlB;EK3SM;IAAwB,QADZ;EL+SlB;EK9SM;IAAwB,QADZ;ELkTlB;EKjTM;IAAwB,SADZ;ELqTlB;EKpTM;IAAwB,SADZ;ELwTlB;EKvTM;IAAwB,SADZ;EL2TlB;EKpTQ;IHTR,cAA4B;EFgU5B;EKvTQ;IHTR,sBAA8C;EFmU9C;EK1TQ;IHTR,uBAA8C;EFsU9C;EK7TQ;IHTR,gBAA8C;EFyU9C;EKhUQ;IHTR,uBAA8C;EF4U9C;EKnUQ;IHTR,uBAA8C;EF+U9C;EKtUQ;IHTR,gBAA8C;EFkV9C;EKzUQ;IHTR,uBAA8C;EFqV9C;EK5UQ;IHTR,uBAA8C;EFwV9C;EK/UQ;IHTR,gBAA8C;EF2V9C;EKlVQ;IHTR,uBAA8C;EF8V9C;EKrVQ;IHTR,uBAA8C;EFiW9C;AACF;;AGvVI;EE9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;ELyXrB;EKvXI;IACE,cAAc;IACd,WAAW;IACX,eAAe;ELyXrB;EKrXM;IHFN,mBAAsC;IAItC,oBAAuC;EFuXvC;EKzXM;IHFN,oBAAsC;IAItC,qBAAuC;EF2XvC;EK7XM;IHFN,aAAsC;IAItC,cAAuC;EF+XvC;EKjYM;IHFN,oBAAsC;IAItC,qBAAuC;EFmYvC;EKrYM;IHFN,oBAAsC;IAItC,qBAAuC;EFuYvC;EKzYM;IHFN,aAAsC;IAItC,cAAuC;EF2YvC;EK7YM;IHFN,oBAAsC;IAItC,qBAAuC;EF+YvC;EKjZM;IHFN,oBAAsC;IAItC,qBAAuC;EFmZvC;EKrZM;IHFN,aAAsC;IAItC,cAAuC;EFuZvC;EKzZM;IHFN,oBAAsC;IAItC,qBAAuC;EF2ZvC;EK7ZM;IHFN,oBAAsC;IAItC,qBAAuC;EF+ZvC;EKjaM;IHFN,cAAsC;IAItC,eAAuC;EFmavC;EKhaI;IAAwB,SAAS;ELmarC;EKjaI;IAAuB,SD2KG;EJyP9B;EKjaM;IAAwB,QADZ;ELqalB;EKpaM;IAAwB,QADZ;ELwalB;EKvaM;IAAwB,QADZ;EL2alB;EK1aM;IAAwB,QADZ;EL8alB;EK7aM;IAAwB,QADZ;ELiblB;EKhbM;IAAwB,QADZ;ELoblB;EKnbM;IAAwB,QADZ;ELublB;EKtbM;IAAwB,QADZ;EL0blB;EKzbM;IAAwB,QADZ;EL6blB;EK5bM;IAAwB,QADZ;ELgclB;EK/bM;IAAwB,SADZ;ELmclB;EKlcM;IAAwB,SADZ;ELsclB;EKrcM;IAAwB,SADZ;ELyclB;EKlcQ;IHTR,cAA4B;EF8c5B;EKrcQ;IHTR,sBAA8C;EFid9C;EKxcQ;IHTR,uBAA8C;EFod9C;EK3cQ;IHTR,gBAA8C;EFud9C;EK9cQ;IHTR,uBAA8C;EF0d9C;EKjdQ;IHTR,uBAA8C;EF6d9C;EKpdQ;IHTR,gBAA8C;EFge9C;EKvdQ;IHTR,uBAA8C;EFme9C;EK1dQ;IHTR,uBAA8C;EFse9C;EK7dQ;IHTR,gBAA8C;EFye9C;EKheQ;IHTR,uBAA8C;EF4e9C;EKneQ;IHTR,uBAA8C;EF+e9C;AACF;;AGreI;EE9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;ELugBrB;EKrgBI;IACE,cAAc;IACd,WAAW;IACX,eAAe;ELugBrB;EKngBM;IHFN,mBAAsC;IAItC,oBAAuC;EFqgBvC;EKvgBM;IHFN,oBAAsC;IAItC,qBAAuC;EFygBvC;EK3gBM;IHFN,aAAsC;IAItC,cAAuC;EF6gBvC;EK/gBM;IHFN,oBAAsC;IAItC,qBAAuC;EFihBvC;EKnhBM;IHFN,oBAAsC;IAItC,qBAAuC;EFqhBvC;EKvhBM;IHFN,aAAsC;IAItC,cAAuC;EFyhBvC;EK3hBM;IHFN,oBAAsC;IAItC,qBAAuC;EF6hBvC;EK/hBM;IHFN,oBAAsC;IAItC,qBAAuC;EFiiBvC;EKniBM;IHFN,aAAsC;IAItC,cAAuC;EFqiBvC;EKviBM;IHFN,oBAAsC;IAItC,qBAAuC;EFyiBvC;EK3iBM;IHFN,oBAAsC;IAItC,qBAAuC;EF6iBvC;EK/iBM;IHFN,cAAsC;IAItC,eAAuC;EFijBvC;EK9iBI;IAAwB,SAAS;ELijBrC;EK/iBI;IAAuB,SD2KG;EJuY9B;EK/iBM;IAAwB,QADZ;ELmjBlB;EKljBM;IAAwB,QADZ;ELsjBlB;EKrjBM;IAAwB,QADZ;ELyjBlB;EKxjBM;IAAwB,QADZ;EL4jBlB;EK3jBM;IAAwB,QADZ;EL+jBlB;EK9jBM;IAAwB,QADZ;ELkkBlB;EKjkBM;IAAwB,QADZ;ELqkBlB;EKpkBM;IAAwB,QADZ;ELwkBlB;EKvkBM;IAAwB,QADZ;EL2kBlB;EK1kBM;IAAwB,QADZ;EL8kBlB;EK7kBM;IAAwB,SADZ;ELilBlB;EKhlBM;IAAwB,SADZ;ELolBlB;EKnlBM;IAAwB,SADZ;ELulBlB;EKhlBQ;IHTR,cAA4B;EF4lB5B;EKnlBQ;IHTR,sBAA8C;EF+lB9C;EKtlBQ;IHTR,uBAA8C;EFkmB9C;EKzlBQ;IHTR,gBAA8C;EFqmB9C;EK5lBQ;IHTR,uBAA8C;EFwmB9C;EK/lBQ;IHTR,uBAA8C;EF2mB9C;EKlmBQ;IHTR,gBAA8C;EF8mB9C;EKrmBQ;IHTR,uBAA8C;EFinB9C;EKxmBQ;IHTR,uBAA8C;EFonB9C;EK3mBQ;IHTR,gBAA8C;EFunB9C;EK9mBQ;IHTR,uBAA8C;EF0nB9C;EKjnBQ;IHTR,uBAA8C;EF6nB9C;AACF;;AGnnBI;EE9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;ELqpBrB;EKnpBI;IACE,cAAc;IACd,WAAW;IACX,eAAe;ELqpBrB;EKjpBM;IHFN,mBAAsC;IAItC,oBAAuC;EFmpBvC;EKrpBM;IHFN,oBAAsC;IAItC,qBAAuC;EFupBvC;EKzpBM;IHFN,aAAsC;IAItC,cAAuC;EF2pBvC;EK7pBM;IHFN,oBAAsC;IAItC,qBAAuC;EF+pBvC;EKjqBM;IHFN,oBAAsC;IAItC,qBAAuC;EFmqBvC;EKrqBM;IHFN,aAAsC;IAItC,cAAuC;EFuqBvC;EKzqBM;IHFN,oBAAsC;IAItC,qBAAuC;EF2qBvC;EK7qBM;IHFN,oBAAsC;IAItC,qBAAuC;EF+qBvC;EKjrBM;IHFN,aAAsC;IAItC,cAAuC;EFmrBvC;EKrrBM;IHFN,oBAAsC;IAItC,qBAAuC;EFurBvC;EKzrBM;IHFN,oBAAsC;IAItC,qBAAuC;EF2rBvC;EK7rBM;IHFN,cAAsC;IAItC,eAAuC;EF+rBvC;EK5rBI;IAAwB,SAAS;EL+rBrC;EK7rBI;IAAuB,SD2KG;EJqhB9B;EK7rBM;IAAwB,QADZ;ELisBlB;EKhsBM;IAAwB,QADZ;ELosBlB;EKnsBM;IAAwB,QADZ;ELusBlB;EKtsBM;IAAwB,QADZ;EL0sBlB;EKzsBM;IAAwB,QADZ;EL6sBlB;EK5sBM;IAAwB,QADZ;ELgtBlB;EK/sBM;IAAwB,QADZ;ELmtBlB;EKltBM;IAAwB,QADZ;ELstBlB;EKrtBM;IAAwB,QADZ;ELytBlB;EKxtBM;IAAwB,QADZ;EL4tBlB;EK3tBM;IAAwB,SADZ;EL+tBlB;EK9tBM;IAAwB,SADZ;ELkuBlB;EKjuBM;IAAwB,SADZ;ELquBlB;EK9tBQ;IHTR,cAA4B;EF0uB5B;EKjuBQ;IHTR,sBAA8C;EF6uB9C;EKpuBQ;IHTR,uBAA8C;EFgvB9C;EKvuBQ;IHTR,gBAA8C;EFmvB9C;EK1uBQ;IHTR,uBAA8C;EFsvB9C;EK7uBQ;IHTR,uBAA8C;EFyvB9C;EKhvBQ;IHTR,gBAA8C;EF4vB9C;EKnvBQ;IHTR,uBAA8C;EF+vB9C;EKtvBQ;IHTR,uBAA8C;EFkwB9C;EKzvBQ;IHTR,gBAA8C;EFqwB9C;EK5vBQ;IHTR,uBAA8C;EFwwB9C;EK/vBQ;IHTR,uBAA8C;EF2wB9C;AACF;;AMlzBM;EAAwB,wBAA0B;ANszBxD;;AMtzBM;EAAwB,0BAA0B;AN0zBxD;;AM1zBM;EAAwB,gCAA0B;AN8zBxD;;AM9zBM;EAAwB,yBAA0B;ANk0BxD;;AMl0BM;EAAwB,yBAA0B;ANs0BxD;;AMt0BM;EAAwB,6BAA0B;AN00BxD;;AM10BM;EAAwB,8BAA0B;AN80BxD;;AM90BM;EAAwB,wBAA0B;ANk1BxD;;AMl1BM;EAAwB,+BAA0B;ANs1BxD;;AGryBI;EGjDE;IAAwB,wBAA0B;EN21BtD;EM31BI;IAAwB,0BAA0B;EN81BtD;EM91BI;IAAwB,gCAA0B;ENi2BtD;EMj2BI;IAAwB,yBAA0B;ENo2BtD;EMp2BI;IAAwB,yBAA0B;ENu2BtD;EMv2BI;IAAwB,6BAA0B;EN02BtD;EM12BI;IAAwB,8BAA0B;EN62BtD;EM72BI;IAAwB,wBAA0B;ENg3BtD;EMh3BI;IAAwB,+BAA0B;ENm3BtD;AACF;;AGn0BI;EGjDE;IAAwB,wBAA0B;ENy3BtD;EMz3BI;IAAwB,0BAA0B;EN43BtD;EM53BI;IAAwB,gCAA0B;EN+3BtD;EM/3BI;IAAwB,yBAA0B;ENk4BtD;EMl4BI;IAAwB,yBAA0B;ENq4BtD;EMr4BI;IAAwB,6BAA0B;ENw4BtD;EMx4BI;IAAwB,8BAA0B;EN24BtD;EM34BI;IAAwB,wBAA0B;EN84BtD;EM94BI;IAAwB,+BAA0B;ENi5BtD;AACF;;AGj2BI;EGjDE;IAAwB,wBAA0B;ENu5BtD;EMv5BI;IAAwB,0BAA0B;EN05BtD;EM15BI;IAAwB,gCAA0B;EN65BtD;EM75BI;IAAwB,yBAA0B;ENg6BtD;EMh6BI;IAAwB,yBAA0B;ENm6BtD;EMn6BI;IAAwB,6BAA0B;ENs6BtD;EMt6BI;IAAwB,8BAA0B;ENy6BtD;EMz6BI;IAAwB,wBAA0B;EN46BtD;EM56BI;IAAwB,+BAA0B;EN+6BtD;AACF;;AG/3BI;EGjDE;IAAwB,wBAA0B;ENq7BtD;EMr7BI;IAAwB,0BAA0B;ENw7BtD;EMx7BI;IAAwB,gCAA0B;EN27BtD;EM37BI;IAAwB,yBAA0B;EN87BtD;EM97BI;IAAwB,yBAA0B;ENi8BtD;EMj8BI;IAAwB,6BAA0B;ENo8BtD;EMp8BI;IAAwB,8BAA0B;ENu8BtD;EMv8BI;IAAwB,wBAA0B;EN08BtD;EM18BI;IAAwB,+BAA0B;EN68BtD;AACF;;AMp8BA;EAEI;IAAqB,wBAA0B;ENu8BjD;EMv8BE;IAAqB,0BAA0B;EN08BjD;EM18BE;IAAqB,gCAA0B;EN68BjD;EM78BE;IAAqB,yBAA0B;ENg9BjD;EMh9BE;IAAqB,yBAA0B;ENm9BjD;EMn9BE;IAAqB,6BAA0B;ENs9BjD;EMt9BE;IAAqB,8BAA0B;ENy9BjD;EMz9BE;IAAqB,wBAA0B;EN49BjD;EM59BE;IAAqB,+BAA0B;EN+9BjD;AACF;;AO7+BI;EAAgC,8BAA8B;APi/BlE;;AOh/BI;EAAgC,iCAAiC;APo/BrE;;AOn/BI;EAAgC,sCAAsC;APu/B1E;;AOt/BI;EAAgC,yCAAyC;AP0/B7E;;AOx/BI;EAA8B,0BAA0B;AP4/B5D;;AO3/BI;EAA8B,4BAA4B;AP+/B9D;;AO9/BI;EAA8B,kCAAkC;APkgCpE;;AOjgCI;EAA8B,yBAAyB;APqgC3D;;AOpgCI;EAA8B,uBAAuB;APwgCzD;;AOvgCI;EAA8B,uBAAuB;AP2gCzD;;AO1gCI;EAA8B,yBAAyB;AP8gC3D;;AO7gCI;EAA8B,yBAAyB;APihC3D;;AO/gCI;EAAoC,sCAAsC;APmhC9E;;AOlhCI;EAAoC,oCAAoC;APshC5E;;AOrhCI;EAAoC,kCAAkC;APyhC1E;;AOxhCI;EAAoC,yCAAyC;AP4hCjF;;AO3hCI;EAAoC,wCAAwC;AP+hChF;;AO7hCI;EAAiC,kCAAkC;APiiCvE;;AOhiCI;EAAiC,gCAAgC;APoiCrE;;AOniCI;EAAiC,8BAA8B;APuiCnE;;AOtiCI;EAAiC,gCAAgC;AP0iCrE;;AOziCI;EAAiC,+BAA+B;AP6iCpE;;AO3iCI;EAAkC,oCAAoC;AP+iC1E;;AO9iCI;EAAkC,kCAAkC;APkjCxE;;AOjjCI;EAAkC,gCAAgC;APqjCtE;;AOpjCI;EAAkC,uCAAuC;APwjC7E;;AOvjCI;EAAkC,sCAAsC;AP2jC5E;;AO1jCI;EAAkC,iCAAiC;AP8jCvE;;AO5jCI;EAAgC,2BAA2B;APgkC/D;;AO/jCI;EAAgC,iCAAiC;APmkCrE;;AOlkCI;EAAgC,+BAA+B;APskCnE;;AOrkCI;EAAgC,6BAA6B;APykCjE;;AOxkCI;EAAgC,+BAA+B;AP4kCnE;;AO3kCI;EAAgC,8BAA8B;AP+kClE;;AGnkCI;EIlDA;IAAgC,8BAA8B;EP0nChE;EOznCE;IAAgC,iCAAiC;EP4nCnE;EO3nCE;IAAgC,sCAAsC;EP8nCxE;EO7nCE;IAAgC,yCAAyC;EPgoC3E;EO9nCE;IAA8B,0BAA0B;EPioC1D;EOhoCE;IAA8B,4BAA4B;EPmoC5D;EOloCE;IAA8B,kCAAkC;EPqoClE;EOpoCE;IAA8B,yBAAyB;EPuoCzD;EOtoCE;IAA8B,uBAAuB;EPyoCvD;EOxoCE;IAA8B,uBAAuB;EP2oCvD;EO1oCE;IAA8B,yBAAyB;EP6oCzD;EO5oCE;IAA8B,yBAAyB;EP+oCzD;EO7oCE;IAAoC,sCAAsC;EPgpC5E;EO/oCE;IAAoC,oCAAoC;EPkpC1E;EOjpCE;IAAoC,kCAAkC;EPopCxE;EOnpCE;IAAoC,yCAAyC;EPspC/E;EOrpCE;IAAoC,wCAAwC;EPwpC9E;EOtpCE;IAAiC,kCAAkC;EPypCrE;EOxpCE;IAAiC,gCAAgC;EP2pCnE;EO1pCE;IAAiC,8BAA8B;EP6pCjE;EO5pCE;IAAiC,gCAAgC;EP+pCnE;EO9pCE;IAAiC,+BAA+B;EPiqClE;EO/pCE;IAAkC,oCAAoC;EPkqCxE;EOjqCE;IAAkC,kCAAkC;EPoqCtE;EOnqCE;IAAkC,gCAAgC;EPsqCpE;EOrqCE;IAAkC,uCAAuC;EPwqC3E;EOvqCE;IAAkC,sCAAsC;EP0qC1E;EOzqCE;IAAkC,iCAAiC;EP4qCrE;EO1qCE;IAAgC,2BAA2B;EP6qC7D;EO5qCE;IAAgC,iCAAiC;EP+qCnE;EO9qCE;IAAgC,+BAA+B;EPirCjE;EOhrCE;IAAgC,6BAA6B;EPmrC/D;EOlrCE;IAAgC,+BAA+B;EPqrCjE;EOprCE;IAAgC,8BAA8B;EPurChE;AACF;;AG5qCI;EIlDA;IAAgC,8BAA8B;EPmuChE;EOluCE;IAAgC,iCAAiC;EPquCnE;EOpuCE;IAAgC,sCAAsC;EPuuCxE;EOtuCE;IAAgC,yCAAyC;EPyuC3E;EOvuCE;IAA8B,0BAA0B;EP0uC1D;EOzuCE;IAA8B,4BAA4B;EP4uC5D;EO3uCE;IAA8B,kCAAkC;EP8uClE;EO7uCE;IAA8B,yBAAyB;EPgvCzD;EO/uCE;IAA8B,uBAAuB;EPkvCvD;EOjvCE;IAA8B,uBAAuB;EPovCvD;EOnvCE;IAA8B,yBAAyB;EPsvCzD;EOrvCE;IAA8B,yBAAyB;EPwvCzD;EOtvCE;IAAoC,sCAAsC;EPyvC5E;EOxvCE;IAAoC,oCAAoC;EP2vC1E;EO1vCE;IAAoC,kCAAkC;EP6vCxE;EO5vCE;IAAoC,yCAAyC;EP+vC/E;EO9vCE;IAAoC,wCAAwC;EPiwC9E;EO/vCE;IAAiC,kCAAkC;EPkwCrE;EOjwCE;IAAiC,gCAAgC;EPowCnE;EOnwCE;IAAiC,8BAA8B;EPswCjE;EOrwCE;IAAiC,gCAAgC;EPwwCnE;EOvwCE;IAAiC,+BAA+B;EP0wClE;EOxwCE;IAAkC,oCAAoC;EP2wCxE;EO1wCE;IAAkC,kCAAkC;EP6wCtE;EO5wCE;IAAkC,gCAAgC;EP+wCpE;EO9wCE;IAAkC,uCAAuC;EPixC3E;EOhxCE;IAAkC,sCAAsC;EPmxC1E;EOlxCE;IAAkC,iCAAiC;EPqxCrE;EOnxCE;IAAgC,2BAA2B;EPsxC7D;EOrxCE;IAAgC,iCAAiC;EPwxCnE;EOvxCE;IAAgC,+BAA+B;EP0xCjE;EOzxCE;IAAgC,6BAA6B;EP4xC/D;EO3xCE;IAAgC,+BAA+B;EP8xCjE;EO7xCE;IAAgC,8BAA8B;EPgyChE;AACF;;AGrxCI;EIlDA;IAAgC,8BAA8B;EP40ChE;EO30CE;IAAgC,iCAAiC;EP80CnE;EO70CE;IAAgC,sCAAsC;EPg1CxE;EO/0CE;IAAgC,yCAAyC;EPk1C3E;EOh1CE;IAA8B,0BAA0B;EPm1C1D;EOl1CE;IAA8B,4BAA4B;EPq1C5D;EOp1CE;IAA8B,kCAAkC;EPu1ClE;EOt1CE;IAA8B,yBAAyB;EPy1CzD;EOx1CE;IAA8B,uBAAuB;EP21CvD;EO11CE;IAA8B,uBAAuB;EP61CvD;EO51CE;IAA8B,yBAAyB;EP+1CzD;EO91CE;IAA8B,yBAAyB;EPi2CzD;EO/1CE;IAAoC,sCAAsC;EPk2C5E;EOj2CE;IAAoC,oCAAoC;EPo2C1E;EOn2CE;IAAoC,kCAAkC;EPs2CxE;EOr2CE;IAAoC,yCAAyC;EPw2C/E;EOv2CE;IAAoC,wCAAwC;EP02C9E;EOx2CE;IAAiC,kCAAkC;EP22CrE;EO12CE;IAAiC,gCAAgC;EP62CnE;EO52CE;IAAiC,8BAA8B;EP+2CjE;EO92CE;IAAiC,gCAAgC;EPi3CnE;EOh3CE;IAAiC,+BAA+B;EPm3ClE;EOj3CE;IAAkC,oCAAoC;EPo3CxE;EOn3CE;IAAkC,kCAAkC;EPs3CtE;EOr3CE;IAAkC,gCAAgC;EPw3CpE;EOv3CE;IAAkC,uCAAuC;EP03C3E;EOz3CE;IAAkC,sCAAsC;EP43C1E;EO33CE;IAAkC,iCAAiC;EP83CrE;EO53CE;IAAgC,2BAA2B;EP+3C7D;EO93CE;IAAgC,iCAAiC;EPi4CnE;EOh4CE;IAAgC,+BAA+B;EPm4CjE;EOl4CE;IAAgC,6BAA6B;EPq4C/D;EOp4CE;IAAgC,+BAA+B;EPu4CjE;EOt4CE;IAAgC,8BAA8B;EPy4ChE;AACF;;AG93CI;EIlDA;IAAgC,8BAA8B;EPq7ChE;EOp7CE;IAAgC,iCAAiC;EPu7CnE;EOt7CE;IAAgC,sCAAsC;EPy7CxE;EOx7CE;IAAgC,yCAAyC;EP27C3E;EOz7CE;IAA8B,0BAA0B;EP47C1D;EO37CE;IAA8B,4BAA4B;EP87C5D;EO77CE;IAA8B,kCAAkC;EPg8ClE;EO/7CE;IAA8B,yBAAyB;EPk8CzD;EOj8CE;IAA8B,uBAAuB;EPo8CvD;EOn8CE;IAA8B,uBAAuB;EPs8CvD;EOr8CE;IAA8B,yBAAyB;EPw8CzD;EOv8CE;IAA8B,yBAAyB;EP08CzD;EOx8CE;IAAoC,sCAAsC;EP28C5E;EO18CE;IAAoC,oCAAoC;EP68C1E;EO58CE;IAAoC,kCAAkC;EP+8CxE;EO98CE;IAAoC,yCAAyC;EPi9C/E;EOh9CE;IAAoC,wCAAwC;EPm9C9E;EOj9CE;IAAiC,kCAAkC;EPo9CrE;EOn9CE;IAAiC,gCAAgC;EPs9CnE;EOr9CE;IAAiC,8BAA8B;EPw9CjE;EOv9CE;IAAiC,gCAAgC;EP09CnE;EOz9CE;IAAiC,+BAA+B;EP49ClE;EO19CE;IAAkC,oCAAoC;EP69CxE;EO59CE;IAAkC,kCAAkC;EP+9CtE;EO99CE;IAAkC,gCAAgC;EPi+CpE;EOh+CE;IAAkC,uCAAuC;EPm+C3E;EOl+CE;IAAkC,sCAAsC;EPq+C1E;EOp+CE;IAAkC,iCAAiC;EPu+CrE;EOr+CE;IAAgC,2BAA2B;EPw+C7D;EOv+CE;IAAgC,iCAAiC;EP0+CnE;EOz+CE;IAAgC,+BAA+B;EP4+CjE;EO3+CE;IAAgC,6BAA6B;EP8+C/D;EO7+CE;IAAgC,+BAA+B;EPg/CjE;EO/+CE;IAAgC,8BAA8B;EPk/ChE;AACF;;AQzhDQ;EAAgC,oBAA4B;AR6hDpE;;AQ5hDQ;;EAEE,wBAAoC;AR+hD9C;;AQ7hDQ;;EAEE,0BAAwC;ARgiDlD;;AQ9hDQ;;EAEE,2BAA0C;ARiiDpD;;AQ/hDQ;;EAEE,yBAAsC;ARkiDhD;;AQjjDQ;EAAgC,0BAA4B;ARqjDpE;;AQpjDQ;;EAEE,8BAAoC;ARujD9C;;AQrjDQ;;EAEE,gCAAwC;ARwjDlD;;AQtjDQ;;EAEE,iCAA0C;ARyjDpD;;AQvjDQ;;EAEE,+BAAsC;AR0jDhD;;AQzkDQ;EAAgC,yBAA4B;AR6kDpE;;AQ5kDQ;;EAEE,6BAAoC;AR+kD9C;;AQ7kDQ;;EAEE,+BAAwC;ARglDlD;;AQ9kDQ;;EAEE,gCAA0C;ARilDpD;;AQ/kDQ;;EAEE,8BAAsC;ARklDhD;;AQjmDQ;EAAgC,uBAA4B;ARqmDpE;;AQpmDQ;;EAEE,2BAAoC;ARumD9C;;AQrmDQ;;EAEE,6BAAwC;ARwmDlD;;AQtmDQ;;EAEE,8BAA0C;ARymDpD;;AQvmDQ;;EAEE,4BAAsC;AR0mDhD;;AQznDQ;EAAgC,yBAA4B;AR6nDpE;;AQ5nDQ;;EAEE,6BAAoC;AR+nD9C;;AQ7nDQ;;EAEE,+BAAwC;ARgoDlD;;AQ9nDQ;;EAEE,gCAA0C;ARioDpD;;AQ/nDQ;;EAEE,8BAAsC;ARkoDhD;;AQjpDQ;EAAgC,uBAA4B;ARqpDpE;;AQppDQ;;EAEE,2BAAoC;ARupD9C;;AQrpDQ;;EAEE,6BAAwC;ARwpDlD;;AQtpDQ;;EAEE,8BAA0C;ARypDpD;;AQvpDQ;;EAEE,4BAAsC;AR0pDhD;;AQzqDQ;EAAgC,qBAA4B;AR6qDpE;;AQ5qDQ;;EAEE,yBAAoC;AR+qD9C;;AQ7qDQ;;EAEE,2BAAwC;ARgrDlD;;AQ9qDQ;;EAEE,4BAA0C;ARirDpD;;AQ/qDQ;;EAEE,0BAAsC;ARkrDhD;;AQjsDQ;EAAgC,2BAA4B;ARqsDpE;;AQpsDQ;;EAEE,+BAAoC;ARusD9C;;AQrsDQ;;EAEE,iCAAwC;ARwsDlD;;AQtsDQ;;EAEE,kCAA0C;ARysDpD;;AQvsDQ;;EAEE,gCAAsC;AR0sDhD;;AQztDQ;EAAgC,0BAA4B;AR6tDpE;;AQ5tDQ;;EAEE,8BAAoC;AR+tD9C;;AQ7tDQ;;EAEE,gCAAwC;ARguDlD;;AQ9tDQ;;EAEE,iCAA0C;ARiuDpD;;AQ/tDQ;;EAEE,+BAAsC;ARkuDhD;;AQjvDQ;EAAgC,wBAA4B;ARqvDpE;;AQpvDQ;;EAEE,4BAAoC;ARuvD9C;;AQrvDQ;;EAEE,8BAAwC;ARwvDlD;;AQtvDQ;;EAEE,+BAA0C;ARyvDpD;;AQvvDQ;;EAEE,6BAAsC;AR0vDhD;;AQzwDQ;EAAgC,0BAA4B;AR6wDpE;;AQ5wDQ;;EAEE,8BAAoC;AR+wD9C;;AQ7wDQ;;EAEE,gCAAwC;ARgxDlD;;AQ9wDQ;;EAEE,iCAA0C;ARixDpD;;AQ/wDQ;;EAEE,+BAAsC;ARkxDhD;;AQjyDQ;EAAgC,wBAA4B;ARqyDpE;;AQpyDQ;;EAEE,4BAAoC;ARuyD9C;;AQryDQ;;EAEE,8BAAwC;ARwyDlD;;AQtyDQ;;EAEE,+BAA0C;ARyyDpD;;AQvyDQ;;EAEE,6BAAsC;AR0yDhD;;AQlyDQ;EAAwB,2BAA2B;ARsyD3D;;AQryDQ;;EAEE,+BAA+B;ARwyDzC;;AQtyDQ;;EAEE,iCAAiC;ARyyD3C;;AQvyDQ;;EAEE,kCAAkC;AR0yD5C;;AQxyDQ;;EAEE,gCAAgC;AR2yD1C;;AQ1zDQ;EAAwB,0BAA2B;AR8zD3D;;AQ7zDQ;;EAEE,8BAA+B;ARg0DzC;;AQ9zDQ;;EAEE,gCAAiC;ARi0D3C;;AQ/zDQ;;EAEE,iCAAkC;ARk0D5C;;AQh0DQ;;EAEE,+BAAgC;ARm0D1C;;AQl1DQ;EAAwB,wBAA2B;ARs1D3D;;AQr1DQ;;EAEE,4BAA+B;ARw1DzC;;AQt1DQ;;EAEE,8BAAiC;ARy1D3C;;AQv1DQ;;EAEE,+BAAkC;AR01D5C;;AQx1DQ;;EAEE,6BAAgC;AR21D1C;;AQ12DQ;EAAwB,0BAA2B;AR82D3D;;AQ72DQ;;EAEE,8BAA+B;ARg3DzC;;AQ92DQ;;EAEE,gCAAiC;ARi3D3C;;AQ/2DQ;;EAEE,iCAAkC;ARk3D5C;;AQh3DQ;;EAEE,+BAAgC;ARm3D1C;;AQl4DQ;EAAwB,wBAA2B;ARs4D3D;;AQr4DQ;;EAEE,4BAA+B;ARw4DzC;;AQt4DQ;;EAEE,8BAAiC;ARy4D3C;;AQv4DQ;;EAEE,+BAAkC;AR04D5C;;AQx4DQ;;EAEE,6BAAgC;AR24D1C;;AQr4DI;EAAmB,uBAAuB;ARy4D9C;;AQx4DI;;EAEE,2BAA2B;AR24DjC;;AQz4DI;;EAEE,6BAA6B;AR44DnC;;AQ14DI;;EAEE,8BAA8B;AR64DpC;;AQ34DI;;EAEE,4BAA4B;AR84DlC;;AGv5DI;EKlDI;IAAgC,oBAA4B;ER88DlE;EQ78DM;;IAEE,wBAAoC;ER+8D5C;EQ78DM;;IAEE,0BAAwC;ER+8DhD;EQ78DM;;IAEE,2BAA0C;ER+8DlD;EQ78DM;;IAEE,yBAAsC;ER+8D9C;EQ99DM;IAAgC,0BAA4B;ERi+DlE;EQh+DM;;IAEE,8BAAoC;ERk+D5C;EQh+DM;;IAEE,gCAAwC;ERk+DhD;EQh+DM;;IAEE,iCAA0C;ERk+DlD;EQh+DM;;IAEE,+BAAsC;ERk+D9C;EQj/DM;IAAgC,yBAA4B;ERo/DlE;EQn/DM;;IAEE,6BAAoC;ERq/D5C;EQn/DM;;IAEE,+BAAwC;ERq/DhD;EQn/DM;;IAEE,gCAA0C;ERq/DlD;EQn/DM;;IAEE,8BAAsC;ERq/D9C;EQpgEM;IAAgC,uBAA4B;ERugElE;EQtgEM;;IAEE,2BAAoC;ERwgE5C;EQtgEM;;IAEE,6BAAwC;ERwgEhD;EQtgEM;;IAEE,8BAA0C;ERwgElD;EQtgEM;;IAEE,4BAAsC;ERwgE9C;EQvhEM;IAAgC,yBAA4B;ER0hElE;EQzhEM;;IAEE,6BAAoC;ER2hE5C;EQzhEM;;IAEE,+BAAwC;ER2hEhD;EQzhEM;;IAEE,gCAA0C;ER2hElD;EQzhEM;;IAEE,8BAAsC;ER2hE9C;EQ1iEM;IAAgC,uBAA4B;ER6iElE;EQ5iEM;;IAEE,2BAAoC;ER8iE5C;EQ5iEM;;IAEE,6BAAwC;ER8iEhD;EQ5iEM;;IAEE,8BAA0C;ER8iElD;EQ5iEM;;IAEE,4BAAsC;ER8iE9C;EQ7jEM;IAAgC,qBAA4B;ERgkElE;EQ/jEM;;IAEE,yBAAoC;ERikE5C;EQ/jEM;;IAEE,2BAAwC;ERikEhD;EQ/jEM;;IAEE,4BAA0C;ERikElD;EQ/jEM;;IAEE,0BAAsC;ERikE9C;EQhlEM;IAAgC,2BAA4B;ERmlElE;EQllEM;;IAEE,+BAAoC;ERolE5C;EQllEM;;IAEE,iCAAwC;ERolEhD;EQllEM;;IAEE,kCAA0C;ERolElD;EQllEM;;IAEE,gCAAsC;ERolE9C;EQnmEM;IAAgC,0BAA4B;ERsmElE;EQrmEM;;IAEE,8BAAoC;ERumE5C;EQrmEM;;IAEE,gCAAwC;ERumEhD;EQrmEM;;IAEE,iCAA0C;ERumElD;EQrmEM;;IAEE,+BAAsC;ERumE9C;EQtnEM;IAAgC,wBAA4B;ERynElE;EQxnEM;;IAEE,4BAAoC;ER0nE5C;EQxnEM;;IAEE,8BAAwC;ER0nEhD;EQxnEM;;IAEE,+BAA0C;ER0nElD;EQxnEM;;IAEE,6BAAsC;ER0nE9C;EQzoEM;IAAgC,0BAA4B;ER4oElE;EQ3oEM;;IAEE,8BAAoC;ER6oE5C;EQ3oEM;;IAEE,gCAAwC;ER6oEhD;EQ3oEM;;IAEE,iCAA0C;ER6oElD;EQ3oEM;;IAEE,+BAAsC;ER6oE9C;EQ5pEM;IAAgC,wBAA4B;ER+pElE;EQ9pEM;;IAEE,4BAAoC;ERgqE5C;EQ9pEM;;IAEE,8BAAwC;ERgqEhD;EQ9pEM;;IAEE,+BAA0C;ERgqElD;EQ9pEM;;IAEE,6BAAsC;ERgqE9C;EQxpEM;IAAwB,2BAA2B;ER2pEzD;EQ1pEM;;IAEE,+BAA+B;ER4pEvC;EQ1pEM;;IAEE,iCAAiC;ER4pEzC;EQ1pEM;;IAEE,kCAAkC;ER4pE1C;EQ1pEM;;IAEE,gCAAgC;ER4pExC;EQ3qEM;IAAwB,0BAA2B;ER8qEzD;EQ7qEM;;IAEE,8BAA+B;ER+qEvC;EQ7qEM;;IAEE,gCAAiC;ER+qEzC;EQ7qEM;;IAEE,iCAAkC;ER+qE1C;EQ7qEM;;IAEE,+BAAgC;ER+qExC;EQ9rEM;IAAwB,wBAA2B;ERisEzD;EQhsEM;;IAEE,4BAA+B;ERksEvC;EQhsEM;;IAEE,8BAAiC;ERksEzC;EQhsEM;;IAEE,+BAAkC;ERksE1C;EQhsEM;;IAEE,6BAAgC;ERksExC;EQjtEM;IAAwB,0BAA2B;ERotEzD;EQntEM;;IAEE,8BAA+B;ERqtEvC;EQntEM;;IAEE,gCAAiC;ERqtEzC;EQntEM;;IAEE,iCAAkC;ERqtE1C;EQntEM;;IAEE,+BAAgC;ERqtExC;EQpuEM;IAAwB,wBAA2B;ERuuEzD;EQtuEM;;IAEE,4BAA+B;ERwuEvC;EQtuEM;;IAEE,8BAAiC;ERwuEzC;EQtuEM;;IAEE,+BAAkC;ERwuE1C;EQtuEM;;IAEE,6BAAgC;ERwuExC;EQluEE;IAAmB,uBAAuB;ERquE5C;EQpuEE;;IAEE,2BAA2B;ERsuE/B;EQpuEE;;IAEE,6BAA6B;ERsuEjC;EQpuEE;;IAEE,8BAA8B;ERsuElC;EQpuEE;;IAEE,4BAA4B;ERsuEhC;AACF;;AGhvEI;EKlDI;IAAgC,oBAA4B;ERuyElE;EQtyEM;;IAEE,wBAAoC;ERwyE5C;EQtyEM;;IAEE,0BAAwC;ERwyEhD;EQtyEM;;IAEE,2BAA0C;ERwyElD;EQtyEM;;IAEE,yBAAsC;ERwyE9C;EQvzEM;IAAgC,0BAA4B;ER0zElE;EQzzEM;;IAEE,8BAAoC;ER2zE5C;EQzzEM;;IAEE,gCAAwC;ER2zEhD;EQzzEM;;IAEE,iCAA0C;ER2zElD;EQzzEM;;IAEE,+BAAsC;ER2zE9C;EQ10EM;IAAgC,yBAA4B;ER60ElE;EQ50EM;;IAEE,6BAAoC;ER80E5C;EQ50EM;;IAEE,+BAAwC;ER80EhD;EQ50EM;;IAEE,gCAA0C;ER80ElD;EQ50EM;;IAEE,8BAAsC;ER80E9C;EQ71EM;IAAgC,uBAA4B;ERg2ElE;EQ/1EM;;IAEE,2BAAoC;ERi2E5C;EQ/1EM;;IAEE,6BAAwC;ERi2EhD;EQ/1EM;;IAEE,8BAA0C;ERi2ElD;EQ/1EM;;IAEE,4BAAsC;ERi2E9C;EQh3EM;IAAgC,yBAA4B;ERm3ElE;EQl3EM;;IAEE,6BAAoC;ERo3E5C;EQl3EM;;IAEE,+BAAwC;ERo3EhD;EQl3EM;;IAEE,gCAA0C;ERo3ElD;EQl3EM;;IAEE,8BAAsC;ERo3E9C;EQn4EM;IAAgC,uBAA4B;ERs4ElE;EQr4EM;;IAEE,2BAAoC;ERu4E5C;EQr4EM;;IAEE,6BAAwC;ERu4EhD;EQr4EM;;IAEE,8BAA0C;ERu4ElD;EQr4EM;;IAEE,4BAAsC;ERu4E9C;EQt5EM;IAAgC,qBAA4B;ERy5ElE;EQx5EM;;IAEE,yBAAoC;ER05E5C;EQx5EM;;IAEE,2BAAwC;ER05EhD;EQx5EM;;IAEE,4BAA0C;ER05ElD;EQx5EM;;IAEE,0BAAsC;ER05E9C;EQz6EM;IAAgC,2BAA4B;ER46ElE;EQ36EM;;IAEE,+BAAoC;ER66E5C;EQ36EM;;IAEE,iCAAwC;ER66EhD;EQ36EM;;IAEE,kCAA0C;ER66ElD;EQ36EM;;IAEE,gCAAsC;ER66E9C;EQ57EM;IAAgC,0BAA4B;ER+7ElE;EQ97EM;;IAEE,8BAAoC;ERg8E5C;EQ97EM;;IAEE,gCAAwC;ERg8EhD;EQ97EM;;IAEE,iCAA0C;ERg8ElD;EQ97EM;;IAEE,+BAAsC;ERg8E9C;EQ/8EM;IAAgC,wBAA4B;ERk9ElE;EQj9EM;;IAEE,4BAAoC;ERm9E5C;EQj9EM;;IAEE,8BAAwC;ERm9EhD;EQj9EM;;IAEE,+BAA0C;ERm9ElD;EQj9EM;;IAEE,6BAAsC;ERm9E9C;EQl+EM;IAAgC,0BAA4B;ERq+ElE;EQp+EM;;IAEE,8BAAoC;ERs+E5C;EQp+EM;;IAEE,gCAAwC;ERs+EhD;EQp+EM;;IAEE,iCAA0C;ERs+ElD;EQp+EM;;IAEE,+BAAsC;ERs+E9C;EQr/EM;IAAgC,wBAA4B;ERw/ElE;EQv/EM;;IAEE,4BAAoC;ERy/E5C;EQv/EM;;IAEE,8BAAwC;ERy/EhD;EQv/EM;;IAEE,+BAA0C;ERy/ElD;EQv/EM;;IAEE,6BAAsC;ERy/E9C;EQj/EM;IAAwB,2BAA2B;ERo/EzD;EQn/EM;;IAEE,+BAA+B;ERq/EvC;EQn/EM;;IAEE,iCAAiC;ERq/EzC;EQn/EM;;IAEE,kCAAkC;ERq/E1C;EQn/EM;;IAEE,gCAAgC;ERq/ExC;EQpgFM;IAAwB,0BAA2B;ERugFzD;EQtgFM;;IAEE,8BAA+B;ERwgFvC;EQtgFM;;IAEE,gCAAiC;ERwgFzC;EQtgFM;;IAEE,iCAAkC;ERwgF1C;EQtgFM;;IAEE,+BAAgC;ERwgFxC;EQvhFM;IAAwB,wBAA2B;ER0hFzD;EQzhFM;;IAEE,4BAA+B;ER2hFvC;EQzhFM;;IAEE,8BAAiC;ER2hFzC;EQzhFM;;IAEE,+BAAkC;ER2hF1C;EQzhFM;;IAEE,6BAAgC;ER2hFxC;EQ1iFM;IAAwB,0BAA2B;ER6iFzD;EQ5iFM;;IAEE,8BAA+B;ER8iFvC;EQ5iFM;;IAEE,gCAAiC;ER8iFzC;EQ5iFM;;IAEE,iCAAkC;ER8iF1C;EQ5iFM;;IAEE,+BAAgC;ER8iFxC;EQ7jFM;IAAwB,wBAA2B;ERgkFzD;EQ/jFM;;IAEE,4BAA+B;ERikFvC;EQ/jFM;;IAEE,8BAAiC;ERikFzC;EQ/jFM;;IAEE,+BAAkC;ERikF1C;EQ/jFM;;IAEE,6BAAgC;ERikFxC;EQ3jFE;IAAmB,uBAAuB;ER8jF5C;EQ7jFE;;IAEE,2BAA2B;ER+jF/B;EQ7jFE;;IAEE,6BAA6B;ER+jFjC;EQ7jFE;;IAEE,8BAA8B;ER+jFlC;EQ7jFE;;IAEE,4BAA4B;ER+jFhC;AACF;;AGzkFI;EKlDI;IAAgC,oBAA4B;ERgoFlE;EQ/nFM;;IAEE,wBAAoC;ERioF5C;EQ/nFM;;IAEE,0BAAwC;ERioFhD;EQ/nFM;;IAEE,2BAA0C;ERioFlD;EQ/nFM;;IAEE,yBAAsC;ERioF9C;EQhpFM;IAAgC,0BAA4B;ERmpFlE;EQlpFM;;IAEE,8BAAoC;ERopF5C;EQlpFM;;IAEE,gCAAwC;ERopFhD;EQlpFM;;IAEE,iCAA0C;ERopFlD;EQlpFM;;IAEE,+BAAsC;ERopF9C;EQnqFM;IAAgC,yBAA4B;ERsqFlE;EQrqFM;;IAEE,6BAAoC;ERuqF5C;EQrqFM;;IAEE,+BAAwC;ERuqFhD;EQrqFM;;IAEE,gCAA0C;ERuqFlD;EQrqFM;;IAEE,8BAAsC;ERuqF9C;EQtrFM;IAAgC,uBAA4B;ERyrFlE;EQxrFM;;IAEE,2BAAoC;ER0rF5C;EQxrFM;;IAEE,6BAAwC;ER0rFhD;EQxrFM;;IAEE,8BAA0C;ER0rFlD;EQxrFM;;IAEE,4BAAsC;ER0rF9C;EQzsFM;IAAgC,yBAA4B;ER4sFlE;EQ3sFM;;IAEE,6BAAoC;ER6sF5C;EQ3sFM;;IAEE,+BAAwC;ER6sFhD;EQ3sFM;;IAEE,gCAA0C;ER6sFlD;EQ3sFM;;IAEE,8BAAsC;ER6sF9C;EQ5tFM;IAAgC,uBAA4B;ER+tFlE;EQ9tFM;;IAEE,2BAAoC;ERguF5C;EQ9tFM;;IAEE,6BAAwC;ERguFhD;EQ9tFM;;IAEE,8BAA0C;ERguFlD;EQ9tFM;;IAEE,4BAAsC;ERguF9C;EQ/uFM;IAAgC,qBAA4B;ERkvFlE;EQjvFM;;IAEE,yBAAoC;ERmvF5C;EQjvFM;;IAEE,2BAAwC;ERmvFhD;EQjvFM;;IAEE,4BAA0C;ERmvFlD;EQjvFM;;IAEE,0BAAsC;ERmvF9C;EQlwFM;IAAgC,2BAA4B;ERqwFlE;EQpwFM;;IAEE,+BAAoC;ERswF5C;EQpwFM;;IAEE,iCAAwC;ERswFhD;EQpwFM;;IAEE,kCAA0C;ERswFlD;EQpwFM;;IAEE,gCAAsC;ERswF9C;EQrxFM;IAAgC,0BAA4B;ERwxFlE;EQvxFM;;IAEE,8BAAoC;ERyxF5C;EQvxFM;;IAEE,gCAAwC;ERyxFhD;EQvxFM;;IAEE,iCAA0C;ERyxFlD;EQvxFM;;IAEE,+BAAsC;ERyxF9C;EQxyFM;IAAgC,wBAA4B;ER2yFlE;EQ1yFM;;IAEE,4BAAoC;ER4yF5C;EQ1yFM;;IAEE,8BAAwC;ER4yFhD;EQ1yFM;;IAEE,+BAA0C;ER4yFlD;EQ1yFM;;IAEE,6BAAsC;ER4yF9C;EQ3zFM;IAAgC,0BAA4B;ER8zFlE;EQ7zFM;;IAEE,8BAAoC;ER+zF5C;EQ7zFM;;IAEE,gCAAwC;ER+zFhD;EQ7zFM;;IAEE,iCAA0C;ER+zFlD;EQ7zFM;;IAEE,+BAAsC;ER+zF9C;EQ90FM;IAAgC,wBAA4B;ERi1FlE;EQh1FM;;IAEE,4BAAoC;ERk1F5C;EQh1FM;;IAEE,8BAAwC;ERk1FhD;EQh1FM;;IAEE,+BAA0C;ERk1FlD;EQh1FM;;IAEE,6BAAsC;ERk1F9C;EQ10FM;IAAwB,2BAA2B;ER60FzD;EQ50FM;;IAEE,+BAA+B;ER80FvC;EQ50FM;;IAEE,iCAAiC;ER80FzC;EQ50FM;;IAEE,kCAAkC;ER80F1C;EQ50FM;;IAEE,gCAAgC;ER80FxC;EQ71FM;IAAwB,0BAA2B;ERg2FzD;EQ/1FM;;IAEE,8BAA+B;ERi2FvC;EQ/1FM;;IAEE,gCAAiC;ERi2FzC;EQ/1FM;;IAEE,iCAAkC;ERi2F1C;EQ/1FM;;IAEE,+BAAgC;ERi2FxC;EQh3FM;IAAwB,wBAA2B;ERm3FzD;EQl3FM;;IAEE,4BAA+B;ERo3FvC;EQl3FM;;IAEE,8BAAiC;ERo3FzC;EQl3FM;;IAEE,+BAAkC;ERo3F1C;EQl3FM;;IAEE,6BAAgC;ERo3FxC;EQn4FM;IAAwB,0BAA2B;ERs4FzD;EQr4FM;;IAEE,8BAA+B;ERu4FvC;EQr4FM;;IAEE,gCAAiC;ERu4FzC;EQr4FM;;IAEE,iCAAkC;ERu4F1C;EQr4FM;;IAEE,+BAAgC;ERu4FxC;EQt5FM;IAAwB,wBAA2B;ERy5FzD;EQx5FM;;IAEE,4BAA+B;ER05FvC;EQx5FM;;IAEE,8BAAiC;ER05FzC;EQx5FM;;IAEE,+BAAkC;ER05F1C;EQx5FM;;IAEE,6BAAgC;ER05FxC;EQp5FE;IAAmB,uBAAuB;ERu5F5C;EQt5FE;;IAEE,2BAA2B;ERw5F/B;EQt5FE;;IAEE,6BAA6B;ERw5FjC;EQt5FE;;IAEE,8BAA8B;ERw5FlC;EQt5FE;;IAEE,4BAA4B;ERw5FhC;AACF;;AGl6FI;EKlDI;IAAgC,oBAA4B;ERy9FlE;EQx9FM;;IAEE,wBAAoC;ER09F5C;EQx9FM;;IAEE,0BAAwC;ER09FhD;EQx9FM;;IAEE,2BAA0C;ER09FlD;EQx9FM;;IAEE,yBAAsC;ER09F9C;EQz+FM;IAAgC,0BAA4B;ER4+FlE;EQ3+FM;;IAEE,8BAAoC;ER6+F5C;EQ3+FM;;IAEE,gCAAwC;ER6+FhD;EQ3+FM;;IAEE,iCAA0C;ER6+FlD;EQ3+FM;;IAEE,+BAAsC;ER6+F9C;EQ5/FM;IAAgC,yBAA4B;ER+/FlE;EQ9/FM;;IAEE,6BAAoC;ERggG5C;EQ9/FM;;IAEE,+BAAwC;ERggGhD;EQ9/FM;;IAEE,gCAA0C;ERggGlD;EQ9/FM;;IAEE,8BAAsC;ERggG9C;EQ/gGM;IAAgC,uBAA4B;ERkhGlE;EQjhGM;;IAEE,2BAAoC;ERmhG5C;EQjhGM;;IAEE,6BAAwC;ERmhGhD;EQjhGM;;IAEE,8BAA0C;ERmhGlD;EQjhGM;;IAEE,4BAAsC;ERmhG9C;EQliGM;IAAgC,yBAA4B;ERqiGlE;EQpiGM;;IAEE,6BAAoC;ERsiG5C;EQpiGM;;IAEE,+BAAwC;ERsiGhD;EQpiGM;;IAEE,gCAA0C;ERsiGlD;EQpiGM;;IAEE,8BAAsC;ERsiG9C;EQrjGM;IAAgC,uBAA4B;ERwjGlE;EQvjGM;;IAEE,2BAAoC;ERyjG5C;EQvjGM;;IAEE,6BAAwC;ERyjGhD;EQvjGM;;IAEE,8BAA0C;ERyjGlD;EQvjGM;;IAEE,4BAAsC;ERyjG9C;EQxkGM;IAAgC,qBAA4B;ER2kGlE;EQ1kGM;;IAEE,yBAAoC;ER4kG5C;EQ1kGM;;IAEE,2BAAwC;ER4kGhD;EQ1kGM;;IAEE,4BAA0C;ER4kGlD;EQ1kGM;;IAEE,0BAAsC;ER4kG9C;EQ3lGM;IAAgC,2BAA4B;ER8lGlE;EQ7lGM;;IAEE,+BAAoC;ER+lG5C;EQ7lGM;;IAEE,iCAAwC;ER+lGhD;EQ7lGM;;IAEE,kCAA0C;ER+lGlD;EQ7lGM;;IAEE,gCAAsC;ER+lG9C;EQ9mGM;IAAgC,0BAA4B;ERinGlE;EQhnGM;;IAEE,8BAAoC;ERknG5C;EQhnGM;;IAEE,gCAAwC;ERknGhD;EQhnGM;;IAEE,iCAA0C;ERknGlD;EQhnGM;;IAEE,+BAAsC;ERknG9C;EQjoGM;IAAgC,wBAA4B;ERooGlE;EQnoGM;;IAEE,4BAAoC;ERqoG5C;EQnoGM;;IAEE,8BAAwC;ERqoGhD;EQnoGM;;IAEE,+BAA0C;ERqoGlD;EQnoGM;;IAEE,6BAAsC;ERqoG9C;EQppGM;IAAgC,0BAA4B;ERupGlE;EQtpGM;;IAEE,8BAAoC;ERwpG5C;EQtpGM;;IAEE,gCAAwC;ERwpGhD;EQtpGM;;IAEE,iCAA0C;ERwpGlD;EQtpGM;;IAEE,+BAAsC;ERwpG9C;EQvqGM;IAAgC,wBAA4B;ER0qGlE;EQzqGM;;IAEE,4BAAoC;ER2qG5C;EQzqGM;;IAEE,8BAAwC;ER2qGhD;EQzqGM;;IAEE,+BAA0C;ER2qGlD;EQzqGM;;IAEE,6BAAsC;ER2qG9C;EQnqGM;IAAwB,2BAA2B;ERsqGzD;EQrqGM;;IAEE,+BAA+B;ERuqGvC;EQrqGM;;IAEE,iCAAiC;ERuqGzC;EQrqGM;;IAEE,kCAAkC;ERuqG1C;EQrqGM;;IAEE,gCAAgC;ERuqGxC;EQtrGM;IAAwB,0BAA2B;ERyrGzD;EQxrGM;;IAEE,8BAA+B;ER0rGvC;EQxrGM;;IAEE,gCAAiC;ER0rGzC;EQxrGM;;IAEE,iCAAkC;ER0rG1C;EQxrGM;;IAEE,+BAAgC;ER0rGxC;EQzsGM;IAAwB,wBAA2B;ER4sGzD;EQ3sGM;;IAEE,4BAA+B;ER6sGvC;EQ3sGM;;IAEE,8BAAiC;ER6sGzC;EQ3sGM;;IAEE,+BAAkC;ER6sG1C;EQ3sGM;;IAEE,6BAAgC;ER6sGxC;EQ5tGM;IAAwB,0BAA2B;ER+tGzD;EQ9tGM;;IAEE,8BAA+B;ERguGvC;EQ9tGM;;IAEE,gCAAiC;ERguGzC;EQ9tGM;;IAEE,iCAAkC;ERguG1C;EQ9tGM;;IAEE,+BAAgC;ERguGxC;EQ/uGM;IAAwB,wBAA2B;ERkvGzD;EQjvGM;;IAEE,4BAA+B;ERmvGvC;EQjvGM;;IAEE,8BAAiC;ERmvGzC;EQjvGM;;IAEE,+BAAkC;ERmvG1C;EQjvGM;;IAEE,6BAAgC;ERmvGxC;EQ7uGE;IAAmB,uBAAuB;ERgvG5C;EQ/uGE;;IAEE,2BAA2B;ERivG/B;EQ/uGE;;IAEE,6BAA6B;ERivGjC;EQ/uGE;;IAEE,8BAA8B;ERivGlC;EQ/uGE;;IAEE,4BAA4B;ERivGhC;AACF","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.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,\n.col-auto, .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,\n.col-sm-auto, .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,\n.col-md-auto, .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,\n.col-lg-auto, .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,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$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\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n$table-dark-color: $white !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2}) !default;\n$input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;\n$input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;\n\n$input-height: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2} + #{$input-height-border}) !default;\n$input-height-sm: calc(#{$input-line-height-sm * 1em} + #{$input-btn-padding-y-sm * 2} + #{$input-height-border}) !default;\n$input-height-lg: calc(#{$input-line-height-lg * 1em} + #{$input-btn-padding-y-lg * 2} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' 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\"), \"#\", \"%23\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\"), \"#\", \"%23\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding-x: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_spacing.scss"],"names":[],"mappings":"AAAA;;;;;ECKE;ADEF;EACE,sBAAsB;EACtB,6BAA6B;ACA/B;;ADGA;;;EAGE,mBAAmB;ACArB;;ACVE;ECAA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;AFcnB;;AGqCI;EFvDF;ICYI,gBE8LK;EJnLT;AACF;;AG+BI;EFvDF;ICYI,gBE+LK;EJ9KT;AACF;;AGyBI;EFvDF;ICYI,gBEgMK;EJzKT;AACF;;AGmBI;EFvDF;ICYI,iBEiMM;EJpKV;AACF;;AC9BE;ECZA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;AF8CnB;;AC5BE;ECJA,aAAa;EACb,eAAe;EACf,mBAA0B;EAC1B,kBAAyB;AFoC3B;;AC7BE;EACE,eAAe;EACf,cAAc;ADgClB;;AClCE;;EAMI,gBAAgB;EAChB,eAAe;ADiCrB;;AKlEE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;AL0E7B;;AKvDM;EACE,aAAa;EACb,YAAY;EACZ,eAAe;AL0DvB;;AKxDM;EACE,cAAc;EACd,WAAW;EACX,eAAe;AL2DvB;;AKvDQ;EHFN,mBAAsC;EAItC,oBAAuC;AF0DzC;;AK5DQ;EHFN,oBAAsC;EAItC,qBAAuC;AF+DzC;;AKjEQ;EHFN,aAAsC;EAItC,cAAuC;AFoEzC;;AKtEQ;EHFN,oBAAsC;EAItC,qBAAuC;AFyEzC;;AK3EQ;EHFN,oBAAsC;EAItC,qBAAuC;AF8EzC;;AKhFQ;EHFN,aAAsC;EAItC,cAAuC;AFmFzC;;AKrFQ;EHFN,oBAAsC;EAItC,qBAAuC;AFwFzC;;AK1FQ;EHFN,oBAAsC;EAItC,qBAAuC;AF6FzC;;AK/FQ;EHFN,aAAsC;EAItC,cAAuC;AFkGzC;;AKpGQ;EHFN,oBAAsC;EAItC,qBAAuC;AFuGzC;;AKzGQ;EHFN,oBAAsC;EAItC,qBAAuC;AF4GzC;;AK9GQ;EHFN,cAAsC;EAItC,eAAuC;AFiHzC;;AK9GM;EAAwB,SAAS;ALkHvC;;AKhHM;EAAuB,SD2KG;AJvDhC;;AKjHQ;EAAwB,QADZ;ALsHpB;;AKrHQ;EAAwB,QADZ;AL0HpB;;AKzHQ;EAAwB,QADZ;AL8HpB;;AK7HQ;EAAwB,QADZ;ALkIpB;;AKjIQ;EAAwB,QADZ;ALsIpB;;AKrIQ;EAAwB,QADZ;AL0IpB;;AKzIQ;EAAwB,QADZ;AL8IpB;;AK7IQ;EAAwB,QADZ;ALkJpB;;AKjJQ;EAAwB,QADZ;ALsJpB;;AKrJQ;EAAwB,QADZ;AL0JpB;;AKzJQ;EAAwB,SADZ;AL8JpB;;AK7JQ;EAAwB,SADZ;ALkKpB;;AKjKQ;EAAwB,SADZ;ALsKpB;;AK/JU;EHTR,sBAA8C;AF4KhD;;AKnKU;EHTR,uBAA8C;AFgLhD;;AKvKU;EHTR,gBAA8C;AFoLhD;;AK3KU;EHTR,uBAA8C;AFwLhD;;AK/KU;EHTR,uBAA8C;AF4LhD;;AKnLU;EHTR,gBAA8C;AFgMhD;;AKvLU;EHTR,uBAA8C;AFoMhD;;AK3LU;EHTR,uBAA8C;AFwMhD;;AK/LU;EHTR,gBAA8C;AF4MhD;;AKnMU;EHTR,uBAA8C;AFgNhD;;AKvMU;EHTR,uBAA8C;AFoNhD;;AGzMI;EE9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;EL2OrB;EKzOI;IACE,cAAc;IACd,WAAW;IACX,eAAe;EL2OrB;EKvOM;IHFN,mBAAsC;IAItC,oBAAuC;EFyOvC;EK3OM;IHFN,oBAAsC;IAItC,qBAAuC;EF6OvC;EK/OM;IHFN,aAAsC;IAItC,cAAuC;EFiPvC;EKnPM;IHFN,oBAAsC;IAItC,qBAAuC;EFqPvC;EKvPM;IHFN,oBAAsC;IAItC,qBAAuC;EFyPvC;EK3PM;IHFN,aAAsC;IAItC,cAAuC;EF6PvC;EK/PM;IHFN,oBAAsC;IAItC,qBAAuC;EFiQvC;EKnQM;IHFN,oBAAsC;IAItC,qBAAuC;EFqQvC;EKvQM;IHFN,aAAsC;IAItC,cAAuC;EFyQvC;EK3QM;IHFN,oBAAsC;IAItC,qBAAuC;EF6QvC;EK/QM;IHFN,oBAAsC;IAItC,qBAAuC;EFiRvC;EKnRM;IHFN,cAAsC;IAItC,eAAuC;EFqRvC;EKlRI;IAAwB,SAAS;ELqRrC;EKnRI;IAAuB,SD2KG;EJ2G9B;EKnRM;IAAwB,QADZ;ELuRlB;EKtRM;IAAwB,QADZ;EL0RlB;EKzRM;IAAwB,QADZ;EL6RlB;EK5RM;IAAwB,QADZ;ELgSlB;EK/RM;IAAwB,QADZ;ELmSlB;EKlSM;IAAwB,QADZ;ELsSlB;EKrSM;IAAwB,QADZ;ELySlB;EKxSM;IAAwB,QADZ;EL4SlB;EK3SM;IAAwB,QADZ;EL+SlB;EK9SM;IAAwB,QADZ;ELkTlB;EKjTM;IAAwB,SADZ;ELqTlB;EKpTM;IAAwB,SADZ;ELwTlB;EKvTM;IAAwB,SADZ;EL2TlB;EKpTQ;IHTR,cAA4B;EFgU5B;EKvTQ;IHTR,sBAA8C;EFmU9C;EK1TQ;IHTR,uBAA8C;EFsU9C;EK7TQ;IHTR,gBAA8C;EFyU9C;EKhUQ;IHTR,uBAA8C;EF4U9C;EKnUQ;IHTR,uBAA8C;EF+U9C;EKtUQ;IHTR,gBAA8C;EFkV9C;EKzUQ;IHTR,uBAA8C;EFqV9C;EK5UQ;IHTR,uBAA8C;EFwV9C;EK/UQ;IHTR,gBAA8C;EF2V9C;EKlVQ;IHTR,uBAA8C;EF8V9C;EKrVQ;IHTR,uBAA8C;EFiW9C;AACF;;AGvVI;EE9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;ELyXrB;EKvXI;IACE,cAAc;IACd,WAAW;IACX,eAAe;ELyXrB;EKrXM;IHFN,mBAAsC;IAItC,oBAAuC;EFuXvC;EKzXM;IHFN,oBAAsC;IAItC,qBAAuC;EF2XvC;EK7XM;IHFN,aAAsC;IAItC,cAAuC;EF+XvC;EKjYM;IHFN,oBAAsC;IAItC,qBAAuC;EFmYvC;EKrYM;IHFN,oBAAsC;IAItC,qBAAuC;EFuYvC;EKzYM;IHFN,aAAsC;IAItC,cAAuC;EF2YvC;EK7YM;IHFN,oBAAsC;IAItC,qBAAuC;EF+YvC;EKjZM;IHFN,oBAAsC;IAItC,qBAAuC;EFmZvC;EKrZM;IHFN,aAAsC;IAItC,cAAuC;EFuZvC;EKzZM;IHFN,oBAAsC;IAItC,qBAAuC;EF2ZvC;EK7ZM;IHFN,oBAAsC;IAItC,qBAAuC;EF+ZvC;EKjaM;IHFN,cAAsC;IAItC,eAAuC;EFmavC;EKhaI;IAAwB,SAAS;ELmarC;EKjaI;IAAuB,SD2KG;EJyP9B;EKjaM;IAAwB,QADZ;ELqalB;EKpaM;IAAwB,QADZ;ELwalB;EKvaM;IAAwB,QADZ;EL2alB;EK1aM;IAAwB,QADZ;EL8alB;EK7aM;IAAwB,QADZ;ELiblB;EKhbM;IAAwB,QADZ;ELoblB;EKnbM;IAAwB,QADZ;ELublB;EKtbM;IAAwB,QADZ;EL0blB;EKzbM;IAAwB,QADZ;EL6blB;EK5bM;IAAwB,QADZ;ELgclB;EK/bM;IAAwB,SADZ;ELmclB;EKlcM;IAAwB,SADZ;ELsclB;EKrcM;IAAwB,SADZ;ELyclB;EKlcQ;IHTR,cAA4B;EF8c5B;EKrcQ;IHTR,sBAA8C;EFid9C;EKxcQ;IHTR,uBAA8C;EFod9C;EK3cQ;IHTR,gBAA8C;EFud9C;EK9cQ;IHTR,uBAA8C;EF0d9C;EKjdQ;IHTR,uBAA8C;EF6d9C;EKpdQ;IHTR,gBAA8C;EFge9C;EKvdQ;IHTR,uBAA8C;EFme9C;EK1dQ;IHTR,uBAA8C;EFse9C;EK7dQ;IHTR,gBAA8C;EFye9C;EKheQ;IHTR,uBAA8C;EF4e9C;EKneQ;IHTR,uBAA8C;EF+e9C;AACF;;AGreI;EE9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;ELugBrB;EKrgBI;IACE,cAAc;IACd,WAAW;IACX,eAAe;ELugBrB;EKngBM;IHFN,mBAAsC;IAItC,oBAAuC;EFqgBvC;EKvgBM;IHFN,oBAAsC;IAItC,qBAAuC;EFygBvC;EK3gBM;IHFN,aAAsC;IAItC,cAAuC;EF6gBvC;EK/gBM;IHFN,oBAAsC;IAItC,qBAAuC;EFihBvC;EKnhBM;IHFN,oBAAsC;IAItC,qBAAuC;EFqhBvC;EKvhBM;IHFN,aAAsC;IAItC,cAAuC;EFyhBvC;EK3hBM;IHFN,oBAAsC;IAItC,qBAAuC;EF6hBvC;EK/hBM;IHFN,oBAAsC;IAItC,qBAAuC;EFiiBvC;EKniBM;IHFN,aAAsC;IAItC,cAAuC;EFqiBvC;EKviBM;IHFN,oBAAsC;IAItC,qBAAuC;EFyiBvC;EK3iBM;IHFN,oBAAsC;IAItC,qBAAuC;EF6iBvC;EK/iBM;IHFN,cAAsC;IAItC,eAAuC;EFijBvC;EK9iBI;IAAwB,SAAS;ELijBrC;EK/iBI;IAAuB,SD2KG;EJuY9B;EK/iBM;IAAwB,QADZ;ELmjBlB;EKljBM;IAAwB,QADZ;ELsjBlB;EKrjBM;IAAwB,QADZ;ELyjBlB;EKxjBM;IAAwB,QADZ;EL4jBlB;EK3jBM;IAAwB,QADZ;EL+jBlB;EK9jBM;IAAwB,QADZ;ELkkBlB;EKjkBM;IAAwB,QADZ;ELqkBlB;EKpkBM;IAAwB,QADZ;ELwkBlB;EKvkBM;IAAwB,QADZ;EL2kBlB;EK1kBM;IAAwB,QADZ;EL8kBlB;EK7kBM;IAAwB,SADZ;ELilBlB;EKhlBM;IAAwB,SADZ;ELolBlB;EKnlBM;IAAwB,SADZ;ELulBlB;EKhlBQ;IHTR,cAA4B;EF4lB5B;EKnlBQ;IHTR,sBAA8C;EF+lB9C;EKtlBQ;IHTR,uBAA8C;EFkmB9C;EKzlBQ;IHTR,gBAA8C;EFqmB9C;EK5lBQ;IHTR,uBAA8C;EFwmB9C;EK/lBQ;IHTR,uBAA8C;EF2mB9C;EKlmBQ;IHTR,gBAA8C;EF8mB9C;EKrmBQ;IHTR,uBAA8C;EFinB9C;EKxmBQ;IHTR,uBAA8C;EFonB9C;EK3mBQ;IHTR,gBAA8C;EFunB9C;EK9mBQ;IHTR,uBAA8C;EF0nB9C;EKjnBQ;IHTR,uBAA8C;EF6nB9C;AACF;;AGnnBI;EE9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;ELqpBrB;EKnpBI;IACE,cAAc;IACd,WAAW;IACX,eAAe;ELqpBrB;EKjpBM;IHFN,mBAAsC;IAItC,oBAAuC;EFmpBvC;EKrpBM;IHFN,oBAAsC;IAItC,qBAAuC;EFupBvC;EKzpBM;IHFN,aAAsC;IAItC,cAAuC;EF2pBvC;EK7pBM;IHFN,oBAAsC;IAItC,qBAAuC;EF+pBvC;EKjqBM;IHFN,oBAAsC;IAItC,qBAAuC;EFmqBvC;EKrqBM;IHFN,aAAsC;IAItC,cAAuC;EFuqBvC;EKzqBM;IHFN,oBAAsC;IAItC,qBAAuC;EF2qBvC;EK7qBM;IHFN,oBAAsC;IAItC,qBAAuC;EF+qBvC;EKjrBM;IHFN,aAAsC;IAItC,cAAuC;EFmrBvC;EKrrBM;IHFN,oBAAsC;IAItC,qBAAuC;EFurBvC;EKzrBM;IHFN,oBAAsC;IAItC,qBAAuC;EF2rBvC;EK7rBM;IHFN,cAAsC;IAItC,eAAuC;EF+rBvC;EK5rBI;IAAwB,SAAS;EL+rBrC;EK7rBI;IAAuB,SD2KG;EJqhB9B;EK7rBM;IAAwB,QADZ;ELisBlB;EKhsBM;IAAwB,QADZ;ELosBlB;EKnsBM;IAAwB,QADZ;ELusBlB;EKtsBM;IAAwB,QADZ;EL0sBlB;EKzsBM;IAAwB,QADZ;EL6sBlB;EK5sBM;IAAwB,QADZ;ELgtBlB;EK/sBM;IAAwB,QADZ;ELmtBlB;EKltBM;IAAwB,QADZ;ELstBlB;EKrtBM;IAAwB,QADZ;ELytBlB;EKxtBM;IAAwB,QADZ;EL4tBlB;EK3tBM;IAAwB,SADZ;EL+tBlB;EK9tBM;IAAwB,SADZ;ELkuBlB;EKjuBM;IAAwB,SADZ;ELquBlB;EK9tBQ;IHTR,cAA4B;EF0uB5B;EKjuBQ;IHTR,sBAA8C;EF6uB9C;EKpuBQ;IHTR,uBAA8C;EFgvB9C;EKvuBQ;IHTR,gBAA8C;EFmvB9C;EK1uBQ;IHTR,uBAA8C;EFsvB9C;EK7uBQ;IHTR,uBAA8C;EFyvB9C;EKhvBQ;IHTR,gBAA8C;EF4vB9C;EKnvBQ;IHTR,uBAA8C;EF+vB9C;EKtvBQ;IHTR,uBAA8C;EFkwB9C;EKzvBQ;IHTR,gBAA8C;EFqwB9C;EK5vBQ;IHTR,uBAA8C;EFwwB9C;EK/vBQ;IHTR,uBAA8C;EF2wB9C;AACF;;AMlzBM;EAAwB,wBAA0B;ANszBxD;;AMtzBM;EAAwB,0BAA0B;AN0zBxD;;AM1zBM;EAAwB,gCAA0B;AN8zBxD;;AM9zBM;EAAwB,yBAA0B;ANk0BxD;;AMl0BM;EAAwB,yBAA0B;ANs0BxD;;AMt0BM;EAAwB,6BAA0B;AN00BxD;;AM10BM;EAAwB,8BAA0B;AN80BxD;;AM90BM;EAAwB,wBAA0B;ANk1BxD;;AMl1BM;EAAwB,+BAA0B;ANs1BxD;;AGryBI;EGjDE;IAAwB,wBAA0B;EN21BtD;EM31BI;IAAwB,0BAA0B;EN81BtD;EM91BI;IAAwB,gCAA0B;ENi2BtD;EMj2BI;IAAwB,yBAA0B;ENo2BtD;EMp2BI;IAAwB,yBAA0B;ENu2BtD;EMv2BI;IAAwB,6BAA0B;EN02BtD;EM12BI;IAAwB,8BAA0B;EN62BtD;EM72BI;IAAwB,wBAA0B;ENg3BtD;EMh3BI;IAAwB,+BAA0B;ENm3BtD;AACF;;AGn0BI;EGjDE;IAAwB,wBAA0B;ENy3BtD;EMz3BI;IAAwB,0BAA0B;EN43BtD;EM53BI;IAAwB,gCAA0B;EN+3BtD;EM/3BI;IAAwB,yBAA0B;ENk4BtD;EMl4BI;IAAwB,yBAA0B;ENq4BtD;EMr4BI;IAAwB,6BAA0B;ENw4BtD;EMx4BI;IAAwB,8BAA0B;EN24BtD;EM34BI;IAAwB,wBAA0B;EN84BtD;EM94BI;IAAwB,+BAA0B;ENi5BtD;AACF;;AGj2BI;EGjDE;IAAwB,wBAA0B;ENu5BtD;EMv5BI;IAAwB,0BAA0B;EN05BtD;EM15BI;IAAwB,gCAA0B;EN65BtD;EM75BI;IAAwB,yBAA0B;ENg6BtD;EMh6BI;IAAwB,yBAA0B;ENm6BtD;EMn6BI;IAAwB,6BAA0B;ENs6BtD;EMt6BI;IAAwB,8BAA0B;ENy6BtD;EMz6BI;IAAwB,wBAA0B;EN46BtD;EM56BI;IAAwB,+BAA0B;EN+6BtD;AACF;;AG/3BI;EGjDE;IAAwB,wBAA0B;ENq7BtD;EMr7BI;IAAwB,0BAA0B;ENw7BtD;EMx7BI;IAAwB,gCAA0B;EN27BtD;EM37BI;IAAwB,yBAA0B;EN87BtD;EM97BI;IAAwB,yBAA0B;ENi8BtD;EMj8BI;IAAwB,6BAA0B;ENo8BtD;EMp8BI;IAAwB,8BAA0B;ENu8BtD;EMv8BI;IAAwB,wBAA0B;EN08BtD;EM18BI;IAAwB,+BAA0B;EN68BtD;AACF;;AMp8BA;EAEI;IAAqB,wBAA0B;ENu8BjD;EMv8BE;IAAqB,0BAA0B;EN08BjD;EM18BE;IAAqB,gCAA0B;EN68BjD;EM78BE;IAAqB,yBAA0B;ENg9BjD;EMh9BE;IAAqB,yBAA0B;ENm9BjD;EMn9BE;IAAqB,6BAA0B;ENs9BjD;EMt9BE;IAAqB,8BAA0B;ENy9BjD;EMz9BE;IAAqB,wBAA0B;EN49BjD;EM59BE;IAAqB,+BAA0B;EN+9BjD;AACF;;AO7+BI;EAAgC,8BAA8B;APi/BlE;;AOh/BI;EAAgC,iCAAiC;APo/BrE;;AOn/BI;EAAgC,sCAAsC;APu/B1E;;AOt/BI;EAAgC,yCAAyC;AP0/B7E;;AOx/BI;EAA8B,0BAA0B;AP4/B5D;;AO3/BI;EAA8B,4BAA4B;AP+/B9D;;AO9/BI;EAA8B,kCAAkC;APkgCpE;;AOjgCI;EAA8B,yBAAyB;APqgC3D;;AOpgCI;EAA8B,uBAAuB;APwgCzD;;AOvgCI;EAA8B,uBAAuB;AP2gCzD;;AO1gCI;EAA8B,yBAAyB;AP8gC3D;;AO7gCI;EAA8B,yBAAyB;APihC3D;;AO/gCI;EAAoC,sCAAsC;APmhC9E;;AOlhCI;EAAoC,oCAAoC;APshC5E;;AOrhCI;EAAoC,kCAAkC;APyhC1E;;AOxhCI;EAAoC,yCAAyC;AP4hCjF;;AO3hCI;EAAoC,wCAAwC;AP+hChF;;AO7hCI;EAAiC,kCAAkC;APiiCvE;;AOhiCI;EAAiC,gCAAgC;APoiCrE;;AOniCI;EAAiC,8BAA8B;APuiCnE;;AOtiCI;EAAiC,gCAAgC;AP0iCrE;;AOziCI;EAAiC,+BAA+B;AP6iCpE;;AO3iCI;EAAkC,oCAAoC;AP+iC1E;;AO9iCI;EAAkC,kCAAkC;APkjCxE;;AOjjCI;EAAkC,gCAAgC;APqjCtE;;AOpjCI;EAAkC,uCAAuC;APwjC7E;;AOvjCI;EAAkC,sCAAsC;AP2jC5E;;AO1jCI;EAAkC,iCAAiC;AP8jCvE;;AO5jCI;EAAgC,2BAA2B;APgkC/D;;AO/jCI;EAAgC,iCAAiC;APmkCrE;;AOlkCI;EAAgC,+BAA+B;APskCnE;;AOrkCI;EAAgC,6BAA6B;APykCjE;;AOxkCI;EAAgC,+BAA+B;AP4kCnE;;AO3kCI;EAAgC,8BAA8B;AP+kClE;;AGnkCI;EIlDA;IAAgC,8BAA8B;EP0nChE;EOznCE;IAAgC,iCAAiC;EP4nCnE;EO3nCE;IAAgC,sCAAsC;EP8nCxE;EO7nCE;IAAgC,yCAAyC;EPgoC3E;EO9nCE;IAA8B,0BAA0B;EPioC1D;EOhoCE;IAA8B,4BAA4B;EPmoC5D;EOloCE;IAA8B,kCAAkC;EPqoClE;EOpoCE;IAA8B,yBAAyB;EPuoCzD;EOtoCE;IAA8B,uBAAuB;EPyoCvD;EOxoCE;IAA8B,uBAAuB;EP2oCvD;EO1oCE;IAA8B,yBAAyB;EP6oCzD;EO5oCE;IAA8B,yBAAyB;EP+oCzD;EO7oCE;IAAoC,sCAAsC;EPgpC5E;EO/oCE;IAAoC,oCAAoC;EPkpC1E;EOjpCE;IAAoC,kCAAkC;EPopCxE;EOnpCE;IAAoC,yCAAyC;EPspC/E;EOrpCE;IAAoC,wCAAwC;EPwpC9E;EOtpCE;IAAiC,kCAAkC;EPypCrE;EOxpCE;IAAiC,gCAAgC;EP2pCnE;EO1pCE;IAAiC,8BAA8B;EP6pCjE;EO5pCE;IAAiC,gCAAgC;EP+pCnE;EO9pCE;IAAiC,+BAA+B;EPiqClE;EO/pCE;IAAkC,oCAAoC;EPkqCxE;EOjqCE;IAAkC,kCAAkC;EPoqCtE;EOnqCE;IAAkC,gCAAgC;EPsqCpE;EOrqCE;IAAkC,uCAAuC;EPwqC3E;EOvqCE;IAAkC,sCAAsC;EP0qC1E;EOzqCE;IAAkC,iCAAiC;EP4qCrE;EO1qCE;IAAgC,2BAA2B;EP6qC7D;EO5qCE;IAAgC,iCAAiC;EP+qCnE;EO9qCE;IAAgC,+BAA+B;EPirCjE;EOhrCE;IAAgC,6BAA6B;EPmrC/D;EOlrCE;IAAgC,+BAA+B;EPqrCjE;EOprCE;IAAgC,8BAA8B;EPurChE;AACF;;AG5qCI;EIlDA;IAAgC,8BAA8B;EPmuChE;EOluCE;IAAgC,iCAAiC;EPquCnE;EOpuCE;IAAgC,sCAAsC;EPuuCxE;EOtuCE;IAAgC,yCAAyC;EPyuC3E;EOvuCE;IAA8B,0BAA0B;EP0uC1D;EOzuCE;IAA8B,4BAA4B;EP4uC5D;EO3uCE;IAA8B,kCAAkC;EP8uClE;EO7uCE;IAA8B,yBAAyB;EPgvCzD;EO/uCE;IAA8B,uBAAuB;EPkvCvD;EOjvCE;IAA8B,uBAAuB;EPovCvD;EOnvCE;IAA8B,yBAAyB;EPsvCzD;EOrvCE;IAA8B,yBAAyB;EPwvCzD;EOtvCE;IAAoC,sCAAsC;EPyvC5E;EOxvCE;IAAoC,oCAAoC;EP2vC1E;EO1vCE;IAAoC,kCAAkC;EP6vCxE;EO5vCE;IAAoC,yCAAyC;EP+vC/E;EO9vCE;IAAoC,wCAAwC;EPiwC9E;EO/vCE;IAAiC,kCAAkC;EPkwCrE;EOjwCE;IAAiC,gCAAgC;EPowCnE;EOnwCE;IAAiC,8BAA8B;EPswCjE;EOrwCE;IAAiC,gCAAgC;EPwwCnE;EOvwCE;IAAiC,+BAA+B;EP0wClE;EOxwCE;IAAkC,oCAAoC;EP2wCxE;EO1wCE;IAAkC,kCAAkC;EP6wCtE;EO5wCE;IAAkC,gCAAgC;EP+wCpE;EO9wCE;IAAkC,uCAAuC;EPixC3E;EOhxCE;IAAkC,sCAAsC;EPmxC1E;EOlxCE;IAAkC,iCAAiC;EPqxCrE;EOnxCE;IAAgC,2BAA2B;EPsxC7D;EOrxCE;IAAgC,iCAAiC;EPwxCnE;EOvxCE;IAAgC,+BAA+B;EP0xCjE;EOzxCE;IAAgC,6BAA6B;EP4xC/D;EO3xCE;IAAgC,+BAA+B;EP8xCjE;EO7xCE;IAAgC,8BAA8B;EPgyChE;AACF;;AGrxCI;EIlDA;IAAgC,8BAA8B;EP40ChE;EO30CE;IAAgC,iCAAiC;EP80CnE;EO70CE;IAAgC,sCAAsC;EPg1CxE;EO/0CE;IAAgC,yCAAyC;EPk1C3E;EOh1CE;IAA8B,0BAA0B;EPm1C1D;EOl1CE;IAA8B,4BAA4B;EPq1C5D;EOp1CE;IAA8B,kCAAkC;EPu1ClE;EOt1CE;IAA8B,yBAAyB;EPy1CzD;EOx1CE;IAA8B,uBAAuB;EP21CvD;EO11CE;IAA8B,uBAAuB;EP61CvD;EO51CE;IAA8B,yBAAyB;EP+1CzD;EO91CE;IAA8B,yBAAyB;EPi2CzD;EO/1CE;IAAoC,sCAAsC;EPk2C5E;EOj2CE;IAAoC,oCAAoC;EPo2C1E;EOn2CE;IAAoC,kCAAkC;EPs2CxE;EOr2CE;IAAoC,yCAAyC;EPw2C/E;EOv2CE;IAAoC,wCAAwC;EP02C9E;EOx2CE;IAAiC,kCAAkC;EP22CrE;EO12CE;IAAiC,gCAAgC;EP62CnE;EO52CE;IAAiC,8BAA8B;EP+2CjE;EO92CE;IAAiC,gCAAgC;EPi3CnE;EOh3CE;IAAiC,+BAA+B;EPm3ClE;EOj3CE;IAAkC,oCAAoC;EPo3CxE;EOn3CE;IAAkC,kCAAkC;EPs3CtE;EOr3CE;IAAkC,gCAAgC;EPw3CpE;EOv3CE;IAAkC,uCAAuC;EP03C3E;EOz3CE;IAAkC,sCAAsC;EP43C1E;EO33CE;IAAkC,iCAAiC;EP83CrE;EO53CE;IAAgC,2BAA2B;EP+3C7D;EO93CE;IAAgC,iCAAiC;EPi4CnE;EOh4CE;IAAgC,+BAA+B;EPm4CjE;EOl4CE;IAAgC,6BAA6B;EPq4C/D;EOp4CE;IAAgC,+BAA+B;EPu4CjE;EOt4CE;IAAgC,8BAA8B;EPy4ChE;AACF;;AG93CI;EIlDA;IAAgC,8BAA8B;EPq7ChE;EOp7CE;IAAgC,iCAAiC;EPu7CnE;EOt7CE;IAAgC,sCAAsC;EPy7CxE;EOx7CE;IAAgC,yCAAyC;EP27C3E;EOz7CE;IAA8B,0BAA0B;EP47C1D;EO37CE;IAA8B,4BAA4B;EP87C5D;EO77CE;IAA8B,kCAAkC;EPg8ClE;EO/7CE;IAA8B,yBAAyB;EPk8CzD;EOj8CE;IAA8B,uBAAuB;EPo8CvD;EOn8CE;IAA8B,uBAAuB;EPs8CvD;EOr8CE;IAA8B,yBAAyB;EPw8CzD;EOv8CE;IAA8B,yBAAyB;EP08CzD;EOx8CE;IAAoC,sCAAsC;EP28C5E;EO18CE;IAAoC,oCAAoC;EP68C1E;EO58CE;IAAoC,kCAAkC;EP+8CxE;EO98CE;IAAoC,yCAAyC;EPi9C/E;EOh9CE;IAAoC,wCAAwC;EPm9C9E;EOj9CE;IAAiC,kCAAkC;EPo9CrE;EOn9CE;IAAiC,gCAAgC;EPs9CnE;EOr9CE;IAAiC,8BAA8B;EPw9CjE;EOv9CE;IAAiC,gCAAgC;EP09CnE;EOz9CE;IAAiC,+BAA+B;EP49ClE;EO19CE;IAAkC,oCAAoC;EP69CxE;EO59CE;IAAkC,kCAAkC;EP+9CtE;EO99CE;IAAkC,gCAAgC;EPi+CpE;EOh+CE;IAAkC,uCAAuC;EPm+C3E;EOl+CE;IAAkC,sCAAsC;EPq+C1E;EOp+CE;IAAkC,iCAAiC;EPu+CrE;EOr+CE;IAAgC,2BAA2B;EPw+C7D;EOv+CE;IAAgC,iCAAiC;EP0+CnE;EOz+CE;IAAgC,+BAA+B;EP4+CjE;EO3+CE;IAAgC,6BAA6B;EP8+C/D;EO7+CE;IAAgC,+BAA+B;EPg/CjE;EO/+CE;IAAgC,8BAA8B;EPk/ChE;AACF;;AQzhDQ;EAAgC,oBAA4B;AR6hDpE;;AQ5hDQ;;EAEE,wBAAoC;AR+hD9C;;AQ7hDQ;;EAEE,0BAAwC;ARgiDlD;;AQ9hDQ;;EAEE,2BAA0C;ARiiDpD;;AQ/hDQ;;EAEE,yBAAsC;ARkiDhD;;AQjjDQ;EAAgC,0BAA4B;ARqjDpE;;AQpjDQ;;EAEE,8BAAoC;ARujD9C;;AQrjDQ;;EAEE,gCAAwC;ARwjDlD;;AQtjDQ;;EAEE,iCAA0C;ARyjDpD;;AQvjDQ;;EAEE,+BAAsC;AR0jDhD;;AQzkDQ;EAAgC,yBAA4B;AR6kDpE;;AQ5kDQ;;EAEE,6BAAoC;AR+kD9C;;AQ7kDQ;;EAEE,+BAAwC;ARglDlD;;AQ9kDQ;;EAEE,gCAA0C;ARilDpD;;AQ/kDQ;;EAEE,8BAAsC;ARklDhD;;AQjmDQ;EAAgC,uBAA4B;ARqmDpE;;AQpmDQ;;EAEE,2BAAoC;ARumD9C;;AQrmDQ;;EAEE,6BAAwC;ARwmDlD;;AQtmDQ;;EAEE,8BAA0C;ARymDpD;;AQvmDQ;;EAEE,4BAAsC;AR0mDhD;;AQznDQ;EAAgC,yBAA4B;AR6nDpE;;AQ5nDQ;;EAEE,6BAAoC;AR+nD9C;;AQ7nDQ;;EAEE,+BAAwC;ARgoDlD;;AQ9nDQ;;EAEE,gCAA0C;ARioDpD;;AQ/nDQ;;EAEE,8BAAsC;ARkoDhD;;AQjpDQ;EAAgC,uBAA4B;ARqpDpE;;AQppDQ;;EAEE,2BAAoC;ARupD9C;;AQrpDQ;;EAEE,6BAAwC;ARwpDlD;;AQtpDQ;;EAEE,8BAA0C;ARypDpD;;AQvpDQ;;EAEE,4BAAsC;AR0pDhD;;AQzqDQ;EAAgC,qBAA4B;AR6qDpE;;AQ5qDQ;;EAEE,yBAAoC;AR+qD9C;;AQ7qDQ;;EAEE,2BAAwC;ARgrDlD;;AQ9qDQ;;EAEE,4BAA0C;ARirDpD;;AQ/qDQ;;EAEE,0BAAsC;ARkrDhD;;AQjsDQ;EAAgC,2BAA4B;ARqsDpE;;AQpsDQ;;EAEE,+BAAoC;ARusD9C;;AQrsDQ;;EAEE,iCAAwC;ARwsDlD;;AQtsDQ;;EAEE,kCAA0C;ARysDpD;;AQvsDQ;;EAEE,gCAAsC;AR0sDhD;;AQztDQ;EAAgC,0BAA4B;AR6tDpE;;AQ5tDQ;;EAEE,8BAAoC;AR+tD9C;;AQ7tDQ;;EAEE,gCAAwC;ARguDlD;;AQ9tDQ;;EAEE,iCAA0C;ARiuDpD;;AQ/tDQ;;EAEE,+BAAsC;ARkuDhD;;AQjvDQ;EAAgC,wBAA4B;ARqvDpE;;AQpvDQ;;EAEE,4BAAoC;ARuvD9C;;AQrvDQ;;EAEE,8BAAwC;ARwvDlD;;AQtvDQ;;EAEE,+BAA0C;ARyvDpD;;AQvvDQ;;EAEE,6BAAsC;AR0vDhD;;AQzwDQ;EAAgC,0BAA4B;AR6wDpE;;AQ5wDQ;;EAEE,8BAAoC;AR+wD9C;;AQ7wDQ;;EAEE,gCAAwC;ARgxDlD;;AQ9wDQ;;EAEE,iCAA0C;ARixDpD;;AQ/wDQ;;EAEE,+BAAsC;ARkxDhD;;AQjyDQ;EAAgC,wBAA4B;ARqyDpE;;AQpyDQ;;EAEE,4BAAoC;ARuyD9C;;AQryDQ;;EAEE,8BAAwC;ARwyDlD;;AQtyDQ;;EAEE,+BAA0C;ARyyDpD;;AQvyDQ;;EAEE,6BAAsC;AR0yDhD;;AQlyDQ;EAAwB,2BAA2B;ARsyD3D;;AQryDQ;;EAEE,+BAA+B;ARwyDzC;;AQtyDQ;;EAEE,iCAAiC;ARyyD3C;;AQvyDQ;;EAEE,kCAAkC;AR0yD5C;;AQxyDQ;;EAEE,gCAAgC;AR2yD1C;;AQ1zDQ;EAAwB,0BAA2B;AR8zD3D;;AQ7zDQ;;EAEE,8BAA+B;ARg0DzC;;AQ9zDQ;;EAEE,gCAAiC;ARi0D3C;;AQ/zDQ;;EAEE,iCAAkC;ARk0D5C;;AQh0DQ;;EAEE,+BAAgC;ARm0D1C;;AQl1DQ;EAAwB,wBAA2B;ARs1D3D;;AQr1DQ;;EAEE,4BAA+B;ARw1DzC;;AQt1DQ;;EAEE,8BAAiC;ARy1D3C;;AQv1DQ;;EAEE,+BAAkC;AR01D5C;;AQx1DQ;;EAEE,6BAAgC;AR21D1C;;AQ12DQ;EAAwB,0BAA2B;AR82D3D;;AQ72DQ;;EAEE,8BAA+B;ARg3DzC;;AQ92DQ;;EAEE,gCAAiC;ARi3D3C;;AQ/2DQ;;EAEE,iCAAkC;ARk3D5C;;AQh3DQ;;EAEE,+BAAgC;ARm3D1C;;AQl4DQ;EAAwB,wBAA2B;ARs4D3D;;AQr4DQ;;EAEE,4BAA+B;ARw4DzC;;AQt4DQ;;EAEE,8BAAiC;ARy4D3C;;AQv4DQ;;EAEE,+BAAkC;AR04D5C;;AQx4DQ;;EAEE,6BAAgC;AR24D1C;;AQr4DI;EAAmB,uBAAuB;ARy4D9C;;AQx4DI;;EAEE,2BAA2B;AR24DjC;;AQz4DI;;EAEE,6BAA6B;AR44DnC;;AQ14DI;;EAEE,8BAA8B;AR64DpC;;AQ34DI;;EAEE,4BAA4B;AR84DlC;;AGv5DI;EKlDI;IAAgC,oBAA4B;ER88DlE;EQ78DM;;IAEE,wBAAoC;ER+8D5C;EQ78DM;;IAEE,0BAAwC;ER+8DhD;EQ78DM;;IAEE,2BAA0C;ER+8DlD;EQ78DM;;IAEE,yBAAsC;ER+8D9C;EQ99DM;IAAgC,0BAA4B;ERi+DlE;EQh+DM;;IAEE,8BAAoC;ERk+D5C;EQh+DM;;IAEE,gCAAwC;ERk+DhD;EQh+DM;;IAEE,iCAA0C;ERk+DlD;EQh+DM;;IAEE,+BAAsC;ERk+D9C;EQj/DM;IAAgC,yBAA4B;ERo/DlE;EQn/DM;;IAEE,6BAAoC;ERq/D5C;EQn/DM;;IAEE,+BAAwC;ERq/DhD;EQn/DM;;IAEE,gCAA0C;ERq/DlD;EQn/DM;;IAEE,8BAAsC;ERq/D9C;EQpgEM;IAAgC,uBAA4B;ERugElE;EQtgEM;;IAEE,2BAAoC;ERwgE5C;EQtgEM;;IAEE,6BAAwC;ERwgEhD;EQtgEM;;IAEE,8BAA0C;ERwgElD;EQtgEM;;IAEE,4BAAsC;ERwgE9C;EQvhEM;IAAgC,yBAA4B;ER0hElE;EQzhEM;;IAEE,6BAAoC;ER2hE5C;EQzhEM;;IAEE,+BAAwC;ER2hEhD;EQzhEM;;IAEE,gCAA0C;ER2hElD;EQzhEM;;IAEE,8BAAsC;ER2hE9C;EQ1iEM;IAAgC,uBAA4B;ER6iElE;EQ5iEM;;IAEE,2BAAoC;ER8iE5C;EQ5iEM;;IAEE,6BAAwC;ER8iEhD;EQ5iEM;;IAEE,8BAA0C;ER8iElD;EQ5iEM;;IAEE,4BAAsC;ER8iE9C;EQ7jEM;IAAgC,qBAA4B;ERgkElE;EQ/jEM;;IAEE,yBAAoC;ERikE5C;EQ/jEM;;IAEE,2BAAwC;ERikEhD;EQ/jEM;;IAEE,4BAA0C;ERikElD;EQ/jEM;;IAEE,0BAAsC;ERikE9C;EQhlEM;IAAgC,2BAA4B;ERmlElE;EQllEM;;IAEE,+BAAoC;ERolE5C;EQllEM;;IAEE,iCAAwC;ERolEhD;EQllEM;;IAEE,kCAA0C;ERolElD;EQllEM;;IAEE,gCAAsC;ERolE9C;EQnmEM;IAAgC,0BAA4B;ERsmElE;EQrmEM;;IAEE,8BAAoC;ERumE5C;EQrmEM;;IAEE,gCAAwC;ERumEhD;EQrmEM;;IAEE,iCAA0C;ERumElD;EQrmEM;;IAEE,+BAAsC;ERumE9C;EQtnEM;IAAgC,wBAA4B;ERynElE;EQxnEM;;IAEE,4BAAoC;ER0nE5C;EQxnEM;;IAEE,8BAAwC;ER0nEhD;EQxnEM;;IAEE,+BAA0C;ER0nElD;EQxnEM;;IAEE,6BAAsC;ER0nE9C;EQzoEM;IAAgC,0BAA4B;ER4oElE;EQ3oEM;;IAEE,8BAAoC;ER6oE5C;EQ3oEM;;IAEE,gCAAwC;ER6oEhD;EQ3oEM;;IAEE,iCAA0C;ER6oElD;EQ3oEM;;IAEE,+BAAsC;ER6oE9C;EQ5pEM;IAAgC,wBAA4B;ER+pElE;EQ9pEM;;IAEE,4BAAoC;ERgqE5C;EQ9pEM;;IAEE,8BAAwC;ERgqEhD;EQ9pEM;;IAEE,+BAA0C;ERgqElD;EQ9pEM;;IAEE,6BAAsC;ERgqE9C;EQxpEM;IAAwB,2BAA2B;ER2pEzD;EQ1pEM;;IAEE,+BAA+B;ER4pEvC;EQ1pEM;;IAEE,iCAAiC;ER4pEzC;EQ1pEM;;IAEE,kCAAkC;ER4pE1C;EQ1pEM;;IAEE,gCAAgC;ER4pExC;EQ3qEM;IAAwB,0BAA2B;ER8qEzD;EQ7qEM;;IAEE,8BAA+B;ER+qEvC;EQ7qEM;;IAEE,gCAAiC;ER+qEzC;EQ7qEM;;IAEE,iCAAkC;ER+qE1C;EQ7qEM;;IAEE,+BAAgC;ER+qExC;EQ9rEM;IAAwB,wBAA2B;ERisEzD;EQhsEM;;IAEE,4BAA+B;ERksEvC;EQhsEM;;IAEE,8BAAiC;ERksEzC;EQhsEM;;IAEE,+BAAkC;ERksE1C;EQhsEM;;IAEE,6BAAgC;ERksExC;EQjtEM;IAAwB,0BAA2B;ERotEzD;EQntEM;;IAEE,8BAA+B;ERqtEvC;EQntEM;;IAEE,gCAAiC;ERqtEzC;EQntEM;;IAEE,iCAAkC;ERqtE1C;EQntEM;;IAEE,+BAAgC;ERqtExC;EQpuEM;IAAwB,wBAA2B;ERuuEzD;EQtuEM;;IAEE,4BAA+B;ERwuEvC;EQtuEM;;IAEE,8BAAiC;ERwuEzC;EQtuEM;;IAEE,+BAAkC;ERwuE1C;EQtuEM;;IAEE,6BAAgC;ERwuExC;EQluEE;IAAmB,uBAAuB;ERquE5C;EQpuEE;;IAEE,2BAA2B;ERsuE/B;EQpuEE;;IAEE,6BAA6B;ERsuEjC;EQpuEE;;IAEE,8BAA8B;ERsuElC;EQpuEE;;IAEE,4BAA4B;ERsuEhC;AACF;;AGhvEI;EKlDI;IAAgC,oBAA4B;ERuyElE;EQtyEM;;IAEE,wBAAoC;ERwyE5C;EQtyEM;;IAEE,0BAAwC;ERwyEhD;EQtyEM;;IAEE,2BAA0C;ERwyElD;EQtyEM;;IAEE,yBAAsC;ERwyE9C;EQvzEM;IAAgC,0BAA4B;ER0zElE;EQzzEM;;IAEE,8BAAoC;ER2zE5C;EQzzEM;;IAEE,gCAAwC;ER2zEhD;EQzzEM;;IAEE,iCAA0C;ER2zElD;EQzzEM;;IAEE,+BAAsC;ER2zE9C;EQ10EM;IAAgC,yBAA4B;ER60ElE;EQ50EM;;IAEE,6BAAoC;ER80E5C;EQ50EM;;IAEE,+BAAwC;ER80EhD;EQ50EM;;IAEE,gCAA0C;ER80ElD;EQ50EM;;IAEE,8BAAsC;ER80E9C;EQ71EM;IAAgC,uBAA4B;ERg2ElE;EQ/1EM;;IAEE,2BAAoC;ERi2E5C;EQ/1EM;;IAEE,6BAAwC;ERi2EhD;EQ/1EM;;IAEE,8BAA0C;ERi2ElD;EQ/1EM;;IAEE,4BAAsC;ERi2E9C;EQh3EM;IAAgC,yBAA4B;ERm3ElE;EQl3EM;;IAEE,6BAAoC;ERo3E5C;EQl3EM;;IAEE,+BAAwC;ERo3EhD;EQl3EM;;IAEE,gCAA0C;ERo3ElD;EQl3EM;;IAEE,8BAAsC;ERo3E9C;EQn4EM;IAAgC,uBAA4B;ERs4ElE;EQr4EM;;IAEE,2BAAoC;ERu4E5C;EQr4EM;;IAEE,6BAAwC;ERu4EhD;EQr4EM;;IAEE,8BAA0C;ERu4ElD;EQr4EM;;IAEE,4BAAsC;ERu4E9C;EQt5EM;IAAgC,qBAA4B;ERy5ElE;EQx5EM;;IAEE,yBAAoC;ER05E5C;EQx5EM;;IAEE,2BAAwC;ER05EhD;EQx5EM;;IAEE,4BAA0C;ER05ElD;EQx5EM;;IAEE,0BAAsC;ER05E9C;EQz6EM;IAAgC,2BAA4B;ER46ElE;EQ36EM;;IAEE,+BAAoC;ER66E5C;EQ36EM;;IAEE,iCAAwC;ER66EhD;EQ36EM;;IAEE,kCAA0C;ER66ElD;EQ36EM;;IAEE,gCAAsC;ER66E9C;EQ57EM;IAAgC,0BAA4B;ER+7ElE;EQ97EM;;IAEE,8BAAoC;ERg8E5C;EQ97EM;;IAEE,gCAAwC;ERg8EhD;EQ97EM;;IAEE,iCAA0C;ERg8ElD;EQ97EM;;IAEE,+BAAsC;ERg8E9C;EQ/8EM;IAAgC,wBAA4B;ERk9ElE;EQj9EM;;IAEE,4BAAoC;ERm9E5C;EQj9EM;;IAEE,8BAAwC;ERm9EhD;EQj9EM;;IAEE,+BAA0C;ERm9ElD;EQj9EM;;IAEE,6BAAsC;ERm9E9C;EQl+EM;IAAgC,0BAA4B;ERq+ElE;EQp+EM;;IAEE,8BAAoC;ERs+E5C;EQp+EM;;IAEE,gCAAwC;ERs+EhD;EQp+EM;;IAEE,iCAA0C;ERs+ElD;EQp+EM;;IAEE,+BAAsC;ERs+E9C;EQr/EM;IAAgC,wBAA4B;ERw/ElE;EQv/EM;;IAEE,4BAAoC;ERy/E5C;EQv/EM;;IAEE,8BAAwC;ERy/EhD;EQv/EM;;IAEE,+BAA0C;ERy/ElD;EQv/EM;;IAEE,6BAAsC;ERy/E9C;EQj/EM;IAAwB,2BAA2B;ERo/EzD;EQn/EM;;IAEE,+BAA+B;ERq/EvC;EQn/EM;;IAEE,iCAAiC;ERq/EzC;EQn/EM;;IAEE,kCAAkC;ERq/E1C;EQn/EM;;IAEE,gCAAgC;ERq/ExC;EQpgFM;IAAwB,0BAA2B;ERugFzD;EQtgFM;;IAEE,8BAA+B;ERwgFvC;EQtgFM;;IAEE,gCAAiC;ERwgFzC;EQtgFM;;IAEE,iCAAkC;ERwgF1C;EQtgFM;;IAEE,+BAAgC;ERwgFxC;EQvhFM;IAAwB,wBAA2B;ER0hFzD;EQzhFM;;IAEE,4BAA+B;ER2hFvC;EQzhFM;;IAEE,8BAAiC;ER2hFzC;EQzhFM;;IAEE,+BAAkC;ER2hF1C;EQzhFM;;IAEE,6BAAgC;ER2hFxC;EQ1iFM;IAAwB,0BAA2B;ER6iFzD;EQ5iFM;;IAEE,8BAA+B;ER8iFvC;EQ5iFM;;IAEE,gCAAiC;ER8iFzC;EQ5iFM;;IAEE,iCAAkC;ER8iF1C;EQ5iFM;;IAEE,+BAAgC;ER8iFxC;EQ7jFM;IAAwB,wBAA2B;ERgkFzD;EQ/jFM;;IAEE,4BAA+B;ERikFvC;EQ/jFM;;IAEE,8BAAiC;ERikFzC;EQ/jFM;;IAEE,+BAAkC;ERikF1C;EQ/jFM;;IAEE,6BAAgC;ERikFxC;EQ3jFE;IAAmB,uBAAuB;ER8jF5C;EQ7jFE;;IAEE,2BAA2B;ER+jF/B;EQ7jFE;;IAEE,6BAA6B;ER+jFjC;EQ7jFE;;IAEE,8BAA8B;ER+jFlC;EQ7jFE;;IAEE,4BAA4B;ER+jFhC;AACF;;AGzkFI;EKlDI;IAAgC,oBAA4B;ERgoFlE;EQ/nFM;;IAEE,wBAAoC;ERioF5C;EQ/nFM;;IAEE,0BAAwC;ERioFhD;EQ/nFM;;IAEE,2BAA0C;ERioFlD;EQ/nFM;;IAEE,yBAAsC;ERioF9C;EQhpFM;IAAgC,0BAA4B;ERmpFlE;EQlpFM;;IAEE,8BAAoC;ERopF5C;EQlpFM;;IAEE,gCAAwC;ERopFhD;EQlpFM;;IAEE,iCAA0C;ERopFlD;EQlpFM;;IAEE,+BAAsC;ERopF9C;EQnqFM;IAAgC,yBAA4B;ERsqFlE;EQrqFM;;IAEE,6BAAoC;ERuqF5C;EQrqFM;;IAEE,+BAAwC;ERuqFhD;EQrqFM;;IAEE,gCAA0C;ERuqFlD;EQrqFM;;IAEE,8BAAsC;ERuqF9C;EQtrFM;IAAgC,uBAA4B;ERyrFlE;EQxrFM;;IAEE,2BAAoC;ER0rF5C;EQxrFM;;IAEE,6BAAwC;ER0rFhD;EQxrFM;;IAEE,8BAA0C;ER0rFlD;EQxrFM;;IAEE,4BAAsC;ER0rF9C;EQzsFM;IAAgC,yBAA4B;ER4sFlE;EQ3sFM;;IAEE,6BAAoC;ER6sF5C;EQ3sFM;;IAEE,+BAAwC;ER6sFhD;EQ3sFM;;IAEE,gCAA0C;ER6sFlD;EQ3sFM;;IAEE,8BAAsC;ER6sF9C;EQ5tFM;IAAgC,uBAA4B;ER+tFlE;EQ9tFM;;IAEE,2BAAoC;ERguF5C;EQ9tFM;;IAEE,6BAAwC;ERguFhD;EQ9tFM;;IAEE,8BAA0C;ERguFlD;EQ9tFM;;IAEE,4BAAsC;ERguF9C;EQ/uFM;IAAgC,qBAA4B;ERkvFlE;EQjvFM;;IAEE,yBAAoC;ERmvF5C;EQjvFM;;IAEE,2BAAwC;ERmvFhD;EQjvFM;;IAEE,4BAA0C;ERmvFlD;EQjvFM;;IAEE,0BAAsC;ERmvF9C;EQlwFM;IAAgC,2BAA4B;ERqwFlE;EQpwFM;;IAEE,+BAAoC;ERswF5C;EQpwFM;;IAEE,iCAAwC;ERswFhD;EQpwFM;;IAEE,kCAA0C;ERswFlD;EQpwFM;;IAEE,gCAAsC;ERswF9C;EQrxFM;IAAgC,0BAA4B;ERwxFlE;EQvxFM;;IAEE,8BAAoC;ERyxF5C;EQvxFM;;IAEE,gCAAwC;ERyxFhD;EQvxFM;;IAEE,iCAA0C;ERyxFlD;EQvxFM;;IAEE,+BAAsC;ERyxF9C;EQxyFM;IAAgC,wBAA4B;ER2yFlE;EQ1yFM;;IAEE,4BAAoC;ER4yF5C;EQ1yFM;;IAEE,8BAAwC;ER4yFhD;EQ1yFM;;IAEE,+BAA0C;ER4yFlD;EQ1yFM;;IAEE,6BAAsC;ER4yF9C;EQ3zFM;IAAgC,0BAA4B;ER8zFlE;EQ7zFM;;IAEE,8BAAoC;ER+zF5C;EQ7zFM;;IAEE,gCAAwC;ER+zFhD;EQ7zFM;;IAEE,iCAA0C;ER+zFlD;EQ7zFM;;IAEE,+BAAsC;ER+zF9C;EQ90FM;IAAgC,wBAA4B;ERi1FlE;EQh1FM;;IAEE,4BAAoC;ERk1F5C;EQh1FM;;IAEE,8BAAwC;ERk1FhD;EQh1FM;;IAEE,+BAA0C;ERk1FlD;EQh1FM;;IAEE,6BAAsC;ERk1F9C;EQ10FM;IAAwB,2BAA2B;ER60FzD;EQ50FM;;IAEE,+BAA+B;ER80FvC;EQ50FM;;IAEE,iCAAiC;ER80FzC;EQ50FM;;IAEE,kCAAkC;ER80F1C;EQ50FM;;IAEE,gCAAgC;ER80FxC;EQ71FM;IAAwB,0BAA2B;ERg2FzD;EQ/1FM;;IAEE,8BAA+B;ERi2FvC;EQ/1FM;;IAEE,gCAAiC;ERi2FzC;EQ/1FM;;IAEE,iCAAkC;ERi2F1C;EQ/1FM;;IAEE,+BAAgC;ERi2FxC;EQh3FM;IAAwB,wBAA2B;ERm3FzD;EQl3FM;;IAEE,4BAA+B;ERo3FvC;EQl3FM;;IAEE,8BAAiC;ERo3FzC;EQl3FM;;IAEE,+BAAkC;ERo3F1C;EQl3FM;;IAEE,6BAAgC;ERo3FxC;EQn4FM;IAAwB,0BAA2B;ERs4FzD;EQr4FM;;IAEE,8BAA+B;ERu4FvC;EQr4FM;;IAEE,gCAAiC;ERu4FzC;EQr4FM;;IAEE,iCAAkC;ERu4F1C;EQr4FM;;IAEE,+BAAgC;ERu4FxC;EQt5FM;IAAwB,wBAA2B;ERy5FzD;EQx5FM;;IAEE,4BAA+B;ER05FvC;EQx5FM;;IAEE,8BAAiC;ER05FzC;EQx5FM;;IAEE,+BAAkC;ER05F1C;EQx5FM;;IAEE,6BAAgC;ER05FxC;EQp5FE;IAAmB,uBAAuB;ERu5F5C;EQt5FE;;IAEE,2BAA2B;ERw5F/B;EQt5FE;;IAEE,6BAA6B;ERw5FjC;EQt5FE;;IAEE,8BAA8B;ERw5FlC;EQt5FE;;IAEE,4BAA4B;ERw5FhC;AACF;;AGl6FI;EKlDI;IAAgC,oBAA4B;ERy9FlE;EQx9FM;;IAEE,wBAAoC;ER09F5C;EQx9FM;;IAEE,0BAAwC;ER09FhD;EQx9FM;;IAEE,2BAA0C;ER09FlD;EQx9FM;;IAEE,yBAAsC;ER09F9C;EQz+FM;IAAgC,0BAA4B;ER4+FlE;EQ3+FM;;IAEE,8BAAoC;ER6+F5C;EQ3+FM;;IAEE,gCAAwC;ER6+FhD;EQ3+FM;;IAEE,iCAA0C;ER6+FlD;EQ3+FM;;IAEE,+BAAsC;ER6+F9C;EQ5/FM;IAAgC,yBAA4B;ER+/FlE;EQ9/FM;;IAEE,6BAAoC;ERggG5C;EQ9/FM;;IAEE,+BAAwC;ERggGhD;EQ9/FM;;IAEE,gCAA0C;ERggGlD;EQ9/FM;;IAEE,8BAAsC;ERggG9C;EQ/gGM;IAAgC,uBAA4B;ERkhGlE;EQjhGM;;IAEE,2BAAoC;ERmhG5C;EQjhGM;;IAEE,6BAAwC;ERmhGhD;EQjhGM;;IAEE,8BAA0C;ERmhGlD;EQjhGM;;IAEE,4BAAsC;ERmhG9C;EQliGM;IAAgC,yBAA4B;ERqiGlE;EQpiGM;;IAEE,6BAAoC;ERsiG5C;EQpiGM;;IAEE,+BAAwC;ERsiGhD;EQpiGM;;IAEE,gCAA0C;ERsiGlD;EQpiGM;;IAEE,8BAAsC;ERsiG9C;EQrjGM;IAAgC,uBAA4B;ERwjGlE;EQvjGM;;IAEE,2BAAoC;ERyjG5C;EQvjGM;;IAEE,6BAAwC;ERyjGhD;EQvjGM;;IAEE,8BAA0C;ERyjGlD;EQvjGM;;IAEE,4BAAsC;ERyjG9C;EQxkGM;IAAgC,qBAA4B;ER2kGlE;EQ1kGM;;IAEE,yBAAoC;ER4kG5C;EQ1kGM;;IAEE,2BAAwC;ER4kGhD;EQ1kGM;;IAEE,4BAA0C;ER4kGlD;EQ1kGM;;IAEE,0BAAsC;ER4kG9C;EQ3lGM;IAAgC,2BAA4B;ER8lGlE;EQ7lGM;;IAEE,+BAAoC;ER+lG5C;EQ7lGM;;IAEE,iCAAwC;ER+lGhD;EQ7lGM;;IAEE,kCAA0C;ER+lGlD;EQ7lGM;;IAEE,gCAAsC;ER+lG9C;EQ9mGM;IAAgC,0BAA4B;ERinGlE;EQhnGM;;IAEE,8BAAoC;ERknG5C;EQhnGM;;IAEE,gCAAwC;ERknGhD;EQhnGM;;IAEE,iCAA0C;ERknGlD;EQhnGM;;IAEE,+BAAsC;ERknG9C;EQjoGM;IAAgC,wBAA4B;ERooGlE;EQnoGM;;IAEE,4BAAoC;ERqoG5C;EQnoGM;;IAEE,8BAAwC;ERqoGhD;EQnoGM;;IAEE,+BAA0C;ERqoGlD;EQnoGM;;IAEE,6BAAsC;ERqoG9C;EQppGM;IAAgC,0BAA4B;ERupGlE;EQtpGM;;IAEE,8BAAoC;ERwpG5C;EQtpGM;;IAEE,gCAAwC;ERwpGhD;EQtpGM;;IAEE,iCAA0C;ERwpGlD;EQtpGM;;IAEE,+BAAsC;ERwpG9C;EQvqGM;IAAgC,wBAA4B;ER0qGlE;EQzqGM;;IAEE,4BAAoC;ER2qG5C;EQzqGM;;IAEE,8BAAwC;ER2qGhD;EQzqGM;;IAEE,+BAA0C;ER2qGlD;EQzqGM;;IAEE,6BAAsC;ER2qG9C;EQnqGM;IAAwB,2BAA2B;ERsqGzD;EQrqGM;;IAEE,+BAA+B;ERuqGvC;EQrqGM;;IAEE,iCAAiC;ERuqGzC;EQrqGM;;IAEE,kCAAkC;ERuqG1C;EQrqGM;;IAEE,gCAAgC;ERuqGxC;EQtrGM;IAAwB,0BAA2B;ERyrGzD;EQxrGM;;IAEE,8BAA+B;ER0rGvC;EQxrGM;;IAEE,gCAAiC;ER0rGzC;EQxrGM;;IAEE,iCAAkC;ER0rG1C;EQxrGM;;IAEE,+BAAgC;ER0rGxC;EQzsGM;IAAwB,wBAA2B;ER4sGzD;EQ3sGM;;IAEE,4BAA+B;ER6sGvC;EQ3sGM;;IAEE,8BAAiC;ER6sGzC;EQ3sGM;;IAEE,+BAAkC;ER6sG1C;EQ3sGM;;IAEE,6BAAgC;ER6sGxC;EQ5tGM;IAAwB,0BAA2B;ER+tGzD;EQ9tGM;;IAEE,8BAA+B;ERguGvC;EQ9tGM;;IAEE,gCAAiC;ERguGzC;EQ9tGM;;IAEE,iCAAkC;ERguG1C;EQ9tGM;;IAEE,+BAAgC;ERguGxC;EQ/uGM;IAAwB,wBAA2B;ERkvGzD;EQjvGM;;IAEE,4BAA+B;ERmvGvC;EQjvGM;;IAEE,8BAAiC;ERmvGzC;EQjvGM;;IAEE,+BAAkC;ERmvG1C;EQjvGM;;IAEE,6BAAgC;ERmvGxC;EQ7uGE;IAAmB,uBAAuB;ERgvG5C;EQ/uGE;;IAEE,2BAA2B;ERivG/B;EQ/uGE;;IAEE,6BAA6B;ERivGjC;EQ/uGE;;IAEE,8BAA8B;ERivGlC;EQ/uGE;;IAEE,4BAA4B;ERivGhC;AACF","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n@import \"utilities/spacing\";\n","/*!\n * Bootstrap Grid v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.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,\n.col-auto, .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,\n.col-sm-auto, .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,\n.col-md-auto, .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,\n.col-lg-auto, .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,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$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\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2}) !default;\n$input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;\n$input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;\n\n$input-height: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2} + #{$input-height-border}) !default;\n$input-height-sm: calc(#{$input-line-height-sm * 1em} + #{$input-btn-padding-y-sm * 2} + #{$input-height-border}) !default;\n$input-height-lg: calc(#{$input-line-height-lg * 1em} + #{$input-btn-padding-y-lg * 2} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' 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\"), \"#\", \"%23\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\"), \"#\", \"%23\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: $border-radius !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-color: $white !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .5em !default;\n$badge-border-radius: $border-radius !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding-x: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n"]}
\ No newline at end of file diff --git a/dist/css/bootstrap-reboot.css b/dist/css/bootstrap-reboot.css index 09cf98693f..338e16c97e 100644 --- a/dist/css/bootstrap-reboot.css +++ b/dist/css/bootstrap-reboot.css @@ -33,7 +33,7 @@ body { background-color: #fff; } -[tabindex="-1"]:focus { +[tabindex="-1"]:focus:not(:focus-visible) { outline: 0 !important; } diff --git a/dist/css/bootstrap-reboot.css.map b/dist/css/bootstrap-reboot.css.map index cdcd565f89..38783585fa 100644 --- a/dist/css/bootstrap-reboot.css.map +++ b/dist/css/bootstrap-reboot.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/bootstrap-reboot.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","file":"bootstrap-reboot.css","sourcesContent":["/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$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\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n$table-dark-color: $white !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2}) !default;\n$input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;\n$input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;\n\n$input-height: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2} + #{$input-height-border}) !default;\n$input-height-sm: calc(#{$input-line-height-sm * 1em} + #{$input-btn-padding-y-sm * 2} + #{$input-height-border}) !default;\n$input-height-lg: calc(#{$input-line-height-lg * 1em} + #{$input-btn-padding-y-lg * 2} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' 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\"), \"#\", \"%23\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\"), \"#\", \"%23\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding-x: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../../scss/bootstrap-reboot.scss","bootstrap-reboot.css","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","file":"bootstrap-reboot.css","sourcesContent":["/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$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\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2}) !default;\n$input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;\n$input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;\n\n$input-height: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2} + #{$input-height-border}) !default;\n$input-height-sm: calc(#{$input-line-height-sm * 1em} + #{$input-btn-padding-y-sm * 2} + #{$input-height-border}) !default;\n$input-height-lg: calc(#{$input-line-height-lg * 1em} + #{$input-btn-padding-y-lg * 2} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' 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\"), \"#\", \"%23\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\"), \"#\", \"%23\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: $border-radius !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-color: $white !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .5em !default;\n$badge-border-radius: $border-radius !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding-x: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive font sizes\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/master/LICENSE)\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n@if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize font size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-disable-class {\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity, which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-enable-class {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query($mq-value) {\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @content;\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @content;\n }\n }\n}\n\n// Responsive font size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Remove unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font size\n $rfs-static: if($rfs-font-size-unit == rem, #{$fs / $rfs-rem-value}rem, #{$fs}px);\n\n // Only add the media query if the font size is bigger than the minimum font size\n @if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n @else {\n // Calculate the minimum font size for $fs\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between $fs and the minimum font size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n\n // Breakpoint formatting\n $mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit});\n\n @include _rfs-disable-class {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n\n @include _rfs-media-query($mq-value) {\n @include _rfs-enable-class {\n font-size: $rfs-fluid;\n }\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixins use RFS to rescale the font size\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]}
\ No newline at end of file diff --git a/dist/css/bootstrap-reboot.min.css b/dist/css/bootstrap-reboot.min.css index c804b3b102..8b6630c752 100644 --- a/dist/css/bootstrap-reboot.min.css +++ b/dist/css/bootstrap-reboot.min.css @@ -4,5 +4,5 @@ * Copyright 2011-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) - */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}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;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{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;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}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;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}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}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}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}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}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}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} + */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}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;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[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;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}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;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}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}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}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}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}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}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} /*# sourceMappingURL=bootstrap-reboot.min.css.map */
\ No newline at end of file diff --git a/dist/css/bootstrap-reboot.min.css.map b/dist/css/bootstrap-reboot.min.css.map index 73f4a1928e..f35b3f8543 100644 --- a/dist/css/bootstrap-reboot.min.css.map +++ b/dist/css/bootstrap-reboot.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","../../scss/vendor/_rfs.scss","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","../../scss/vendor/_rfs.scss","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive font sizes\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/master/LICENSE)\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n@if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize font size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-disable-class {\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity, which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-enable-class {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query($mq-value) {\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @content;\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @content;\n }\n }\n}\n\n// Responsive font size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Remove unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font size\n $rfs-static: if($rfs-font-size-unit == rem, #{$fs / $rfs-rem-value}rem, #{$fs}px);\n\n // Only add the media query if the font size is bigger than the minimum font size\n @if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n @else {\n // Calculate the minimum font size for $fs\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between $fs and the minimum font size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n\n // Breakpoint formatting\n $mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit});\n\n @include _rfs-disable-class {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n\n @include _rfs-media-query($mq-value) {\n @include _rfs-enable-class {\n font-size: $rfs-fluid;\n }\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixins use RFS to rescale the font size\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]}
\ No newline at end of file diff --git a/dist/css/bootstrap.css b/dist/css/bootstrap.css index 799825a94e..ce028b0af5 100644 --- a/dist/css/bootstrap.css +++ b/dist/css/bootstrap.css @@ -63,7 +63,7 @@ body { background-color: #fff; } -[tabindex="-1"]:focus { +[tabindex="-1"]:focus:not(:focus-visible) { outline: 0 !important; } @@ -1876,7 +1876,7 @@ textarea.form-control { margin-left: -1.25rem; } -.form-check-input:disabled ~ .form-check-label { +.form-check-input[disabled] ~ .form-check-label { color: #6c757d; } @@ -2260,6 +2260,9 @@ fieldset:disabled a.btn { } .btn-primary:focus, .btn-primary.focus { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); } @@ -2294,6 +2297,9 @@ fieldset:disabled a.btn { } .btn-secondary:focus, .btn-secondary.focus { + color: #fff; + background-color: #5a6268; + border-color: #545b62; box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); } @@ -2328,6 +2334,9 @@ fieldset:disabled a.btn { } .btn-success:focus, .btn-success.focus { + color: #fff; + background-color: #218838; + border-color: #1e7e34; box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); } @@ -2362,6 +2371,9 @@ fieldset:disabled a.btn { } .btn-info:focus, .btn-info.focus { + color: #fff; + background-color: #138496; + border-color: #117a8b; box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); } @@ -2396,6 +2408,9 @@ fieldset:disabled a.btn { } .btn-warning:focus, .btn-warning.focus { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); } @@ -2430,6 +2445,9 @@ fieldset:disabled a.btn { } .btn-danger:focus, .btn-danger.focus { + color: #fff; + background-color: #c82333; + border-color: #bd2130; box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); } @@ -2464,6 +2482,9 @@ fieldset:disabled a.btn { } .btn-light:focus, .btn-light.focus { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); } @@ -2498,6 +2519,9 @@ fieldset:disabled a.btn { } .btn-dark:focus, .btn-dark.focus { + color: #fff; + background-color: #23272b; + border-color: #1d2124; box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); } @@ -3447,11 +3471,11 @@ input[type="button"].btn-block { 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; } @@ -3644,7 +3668,7 @@ input[type="button"].btn-block { box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } -.custom-file-input:disabled ~ .custom-file-label { +.custom-file-input[disabled] ~ .custom-file-label { background-color: #e9ecef; } @@ -4570,6 +4594,10 @@ input[type="button"].btn-block { } .breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { text-decoration: none; } @@ -4669,25 +4697,15 @@ input[type="button"].btn-block { .badge { display: inline-block; - padding: 0.25em 0.4em; + padding: 0.25em 0.5em; font-size: 75%; font-weight: 700; line-height: 1; + color: #fff; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: 0.25rem; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} - -@media (prefers-reduced-motion: reduce) { - .badge { - transition: none; - } -} - -a.badge:hover, a.badge:focus { - text-decoration: none; } .badge:empty { @@ -4699,132 +4717,6 @@ a.badge:hover, a.badge:focus { top: -1px; } -.badge-pill { - padding-right: 0.6em; - padding-left: 0.6em; - border-radius: 10rem; -} - -.badge-primary { - color: #fff; - background-color: #007bff; -} - -a.badge-primary:hover, a.badge-primary:focus { - color: #fff; - background-color: #0062cc; -} - -a.badge-primary:focus, a.badge-primary.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); -} - -.badge-secondary { - color: #fff; - background-color: #6c757d; -} - -a.badge-secondary:hover, a.badge-secondary:focus { - color: #fff; - background-color: #545b62; -} - -a.badge-secondary:focus, a.badge-secondary.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); -} - -.badge-success { - color: #fff; - background-color: #28a745; -} - -a.badge-success:hover, a.badge-success:focus { - color: #fff; - background-color: #1e7e34; -} - -a.badge-success:focus, a.badge-success.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); -} - -.badge-info { - color: #fff; - background-color: #17a2b8; -} - -a.badge-info:hover, a.badge-info:focus { - color: #fff; - background-color: #117a8b; -} - -a.badge-info:focus, a.badge-info.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); -} - -.badge-warning { - color: #212529; - background-color: #ffc107; -} - -a.badge-warning:hover, a.badge-warning:focus { - color: #212529; - background-color: #d39e00; -} - -a.badge-warning:focus, a.badge-warning.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); -} - -.badge-danger { - color: #fff; - background-color: #dc3545; -} - -a.badge-danger:hover, a.badge-danger:focus { - color: #fff; - background-color: #bd2130; -} - -a.badge-danger:focus, a.badge-danger.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); -} - -.badge-light { - color: #212529; - background-color: #f8f9fa; -} - -a.badge-light:hover, a.badge-light:focus { - color: #212529; - background-color: #dae0e5; -} - -a.badge-light:focus, a.badge-light.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} - -.badge-dark { - color: #fff; - background-color: #343a40; -} - -a.badge-dark:hover, a.badge-dark:focus { - color: #fff; - background-color: #1d2124; -} - -a.badge-dark:focus, a.badge-dark.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} - .jumbotron { padding: 2rem 1rem; margin-bottom: 2rem; @@ -4878,10 +4770,6 @@ a.badge-dark:focus, a.badge-dark.focus { border-color: #b8daff; } -.alert-primary hr { - border-top-color: #9fcdff; -} - .alert-primary .alert-link { color: #002752; } @@ -4892,10 +4780,6 @@ a.badge-dark:focus, a.badge-dark.focus { border-color: #d6d8db; } -.alert-secondary hr { - border-top-color: #c8cbcf; -} - .alert-secondary .alert-link { color: #202326; } @@ -4906,10 +4790,6 @@ a.badge-dark:focus, a.badge-dark.focus { border-color: #c3e6cb; } -.alert-success hr { - border-top-color: #b1dfbb; -} - .alert-success .alert-link { color: #0b2e13; } @@ -4920,10 +4800,6 @@ a.badge-dark:focus, a.badge-dark.focus { border-color: #bee5eb; } -.alert-info hr { - border-top-color: #abdde5; -} - .alert-info .alert-link { color: #062c33; } @@ -4934,10 +4810,6 @@ a.badge-dark:focus, a.badge-dark.focus { border-color: #ffeeba; } -.alert-warning hr { - border-top-color: #ffe8a1; -} - .alert-warning .alert-link { color: #533f03; } @@ -4948,10 +4820,6 @@ a.badge-dark:focus, a.badge-dark.focus { border-color: #f5c6cb; } -.alert-danger hr { - border-top-color: #f1b0b7; -} - .alert-danger .alert-link { color: #491217; } @@ -4962,10 +4830,6 @@ a.badge-dark:focus, a.badge-dark.focus { border-color: #fdfdfe; } -.alert-light hr { - border-top-color: #ececf6; -} - .alert-light .alert-link { color: #686868; } @@ -4976,10 +4840,6 @@ a.badge-dark:focus, a.badge-dark.focus { border-color: #c6c8ca; } -.alert-dark hr { - border-top-color: #b9bbbe; -} - .alert-dark .alert-link { color: #040505; } @@ -6215,82 +6075,34 @@ a.close.disabled { background-color: #007bff !important; } -a.bg-primary:hover, a.bg-primary:focus, -button.bg-primary:hover, -button.bg-primary:focus { - background-color: #0062cc !important; -} - .bg-secondary { background-color: #6c757d !important; } -a.bg-secondary:hover, a.bg-secondary:focus, -button.bg-secondary:hover, -button.bg-secondary:focus { - background-color: #545b62 !important; -} - .bg-success { background-color: #28a745 !important; } -a.bg-success:hover, a.bg-success:focus, -button.bg-success:hover, -button.bg-success:focus { - background-color: #1e7e34 !important; -} - .bg-info { background-color: #17a2b8 !important; } -a.bg-info:hover, a.bg-info:focus, -button.bg-info:hover, -button.bg-info:focus { - background-color: #117a8b !important; -} - .bg-warning { background-color: #ffc107 !important; } -a.bg-warning:hover, a.bg-warning:focus, -button.bg-warning:hover, -button.bg-warning:focus { - background-color: #d39e00 !important; -} - .bg-danger { background-color: #dc3545 !important; } -a.bg-danger:hover, a.bg-danger:focus, -button.bg-danger:hover, -button.bg-danger:focus { - background-color: #bd2130 !important; -} - .bg-light { background-color: #f8f9fa !important; } -a.bg-light:hover, a.bg-light:focus, -button.bg-light:hover, -button.bg-light:focus { - background-color: #dae0e5 !important; -} - .bg-dark { background-color: #343a40 !important; } -a.bg-dark:hover, a.bg-dark:focus, -button.bg-dark:hover, -button.bg-dark:focus { - background-color: #1d2124 !important; -} - .bg-white { background-color: #fff !important; } @@ -9450,14 +9262,6 @@ a.text-dark:hover, a.text-dark:focus { color: rgba(255, 255, 255, 0.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; } diff --git a/dist/css/bootstrap.css.map b/dist/css/bootstrap.css.map index ea9dde2c66..9226cbbbb4 100644 --- a/dist/css/bootstrap.css.map +++ b/dist/css/bootstrap.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/bootstrap.scss","bootstrap.css","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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AF7G1B;;AAEA;EEmHE,wBAAwB;AFjH1B;;AEyHA;EACE,aAAa;EACb,0BAA0B;AFtH5B;;AE6HA;EACE,qBAAqB;AF1HvB;;AE6HA;EACE,kBAAkB;EAClB,eAAe;AF1HjB;;AE6HA;EACE,aAAa;AF1Hf;;AAEA;EE8HE,wBAAwB;AF5H1B;;AM/VA;;EAEE,qBHiSuC;EG/RvC,gBHiS+B;EGhS/B,gBHiS+B;AHgEjC;;AM7VA;EFgHM,iBAtCY;AJuRlB;;AMhWA;EF+GM,eAtCY;AJ2RlB;;AMnWA;EF8GM,kBAtCY;AJ+RlB;;AMtWA;EF6GM,iBAtCY;AJmSlB;;AMzWA;EF4GM,kBAtCY;AJuSlB;;AM5WA;EF2GM,eAtCY;AJ2SlB;;AM9WA;EFyGM,kBAtCY;EEjEhB,gBHmS+B;AH8EjC;;AM7WA;EFmGM,eAtCY;EE3DhB,gBHsR+B;EGrR/B,gBH6Q+B;AHmGjC;;AM9WA;EF8FM,iBAtCY;EEtDhB,gBHkR+B;EGjR/B,gBHwQ+B;AHyGjC;;AM/WA;EFyFM,iBAtCY;EEjDhB,gBH8Q+B;EG7Q/B,gBHmQ+B;AH+GjC;;AMhXA;EFoFM,iBAtCY;EE5ChB,gBH0Q+B;EGzQ/B,gBH8P+B;AHqHjC;;AE1VA;EIhBE,gBH0EW;EGzEX,mBHyEW;EGxEX,SAAS;EACT,wCHzCa;AHuZf;;AMtWA;;EFMI,cAAW;EEHb,gBHsN+B;AHmJjC;;AMtWA;;EAEE,cH8PgC;EG7PhC,yBHsQmC;AHmGrC;;AMjWA;EC/EE,eAAe;EACf,gBAAgB;APoblB;;AMjWA;ECpFE,eAAe;EACf,gBAAgB;APyblB;;AMnWA;EACE,qBAAqB;ANsWvB;;AMvWA;EAII,oBHgP+B;AHuHnC;;AM7VA;EFjCI,cAAW;EEmCb,yBAAyB;ANgW3B;;AM5VA;EACE,mBHiBW;ECFP,kBAtCY;AJuXlB;;AM5VA;EACE,cAAc;EF7CZ,cAAW;EE+Cb,cH1GgB;AHyclB;;AMlWA;EAMI,qBAAqB;ANgWzB;;AQndA;ECIE,eAAe;EAGf,YAAY;ATidd;;AQldA;EACE,gBL++BwC;EK9+BxC,sBLRa;EKSb,yBLNgB;EOLd,sBPqOgC;EM/NlC,eAAe;EAGf,YAAY;AT0dd;;AQ5cA;EAEE,qBAAqB;AR8cvB;;AQ3cA;EACE,qBAA0B;EAC1B,cAAc;AR8chB;;AQ3cA;EJkCI,cAAW;EIhCb,cL3BgB;AHyelB;;AWrfA;EPuEI,gBAAW;EOrEb,cRoCe;EQnCf,sBAAsB;AXwfxB;;AWrfE;EACE,cAAc;AXwflB;;AWnfA;EACE,sBRikCuC;ECvgCrC,gBAAW;EOxDb,WRTa;EQUb,yBRDgB;EOXd,qBPuO+B;AH4RnC;;AW3fA;EASI,UAAU;EPkDV,eAAW;EOhDX,gBRoQ6B;AHkPjC;;AE7SA;ESlME,cAAc;EPyCZ,gBAAW;EOvCb,cRjBgB;AHogBlB;;AWtfA;EP0CI,kBAAW;EOlCX,cAAc;EACd,kBAAkB;AXmftB;;AW9eA;EACE,iBRwiCuC;EQviCvC,kBAAkB;AXifpB;;AY1hBE;ECAA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab8hBnB;;Ac3eI;EFvDF;ICYI,gBV8LK;EH6VT;AACF;;AcjfI;EFvDF;ICYI,gBV+LK;EHkWT;AACF;;AcvfI;EFvDF;ICYI,gBVgMK;EHuWT;AACF;;Ac7fI;EFvDF;ICYI,iBViMM;EH4WV;AACF;;AY9iBE;ECZA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab8jBnB;;AY5iBE;ECJA,aAAa;EACb,eAAe;EACf,mBAA0B;EAC1B,kBAAyB;AbojB3B;;AY7iBE;EACE,eAAe;EACf,cAAc;AZgjBlB;;AYljBE;;EAMI,gBAAgB;EAChB,eAAe;AZijBrB;;AellBE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;Af0lB7B;;AevkBM;EACE,aAAa;EACb,YAAY;EACZ,eAAe;Af0kBvB;;AexkBM;EACE,cAAc;EACd,WAAW;EACX,eAAe;Af2kBvB;;AevkBQ;EFFN,mBAAsC;EAItC,oBAAuC;Ab0kBzC;;Ae5kBQ;EFFN,oBAAsC;EAItC,qBAAuC;Ab+kBzC;;AejlBQ;EFFN,aAAsC;EAItC,cAAuC;AbolBzC;;AetlBQ;EFFN,oBAAsC;EAItC,qBAAuC;AbylBzC;;Ae3lBQ;EFFN,oBAAsC;EAItC,qBAAuC;Ab8lBzC;;AehmBQ;EFFN,aAAsC;EAItC,cAAuC;AbmmBzC;;AermBQ;EFFN,oBAAsC;EAItC,qBAAuC;AbwmBzC;;Ae1mBQ;EFFN,oBAAsC;EAItC,qBAAuC;Ab6mBzC;;Ae/mBQ;EFFN,aAAsC;EAItC,cAAuC;AbknBzC;;AepnBQ;EFFN,oBAAsC;EAItC,qBAAuC;AbunBzC;;AeznBQ;EFFN,oBAAsC;EAItC,qBAAuC;Ab4nBzC;;Ae9nBQ;EFFN,cAAsC;EAItC,eAAuC;AbioBzC;;Ae9nBM;EAAwB,SAAS;AfkoBvC;;AehoBM;EAAuB,SZ2KG;AHydhC;;AejoBQ;EAAwB,QADZ;AfsoBpB;;AeroBQ;EAAwB,QADZ;Af0oBpB;;AezoBQ;EAAwB,QADZ;Af8oBpB;;Ae7oBQ;EAAwB,QADZ;AfkpBpB;;AejpBQ;EAAwB,QADZ;AfspBpB;;AerpBQ;EAAwB,QADZ;Af0pBpB;;AezpBQ;EAAwB,QADZ;Af8pBpB;;Ae7pBQ;EAAwB,QADZ;AfkqBpB;;AejqBQ;EAAwB,QADZ;AfsqBpB;;AerqBQ;EAAwB,QADZ;Af0qBpB;;AezqBQ;EAAwB,SADZ;Af8qBpB;;Ae7qBQ;EAAwB,SADZ;AfkrBpB;;AejrBQ;EAAwB,SADZ;AfsrBpB;;Ae/qBU;EFTR,sBAA8C;Ab4rBhD;;AenrBU;EFTR,uBAA8C;AbgsBhD;;AevrBU;EFTR,gBAA8C;AbosBhD;;Ae3rBU;EFTR,uBAA8C;AbwsBhD;;Ae/rBU;EFTR,uBAA8C;Ab4sBhD;;AensBU;EFTR,gBAA8C;AbgtBhD;;AevsBU;EFTR,uBAA8C;AbotBhD;;Ae3sBU;EFTR,uBAA8C;AbwtBhD;;Ae/sBU;EFTR,gBAA8C;Ab4tBhD;;AentBU;EFTR,uBAA8C;AbguBhD;;AevtBU;EFTR,uBAA8C;AbouBhD;;AcztBI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;Ef2vBrB;EezvBI;IACE,cAAc;IACd,WAAW;IACX,eAAe;Ef2vBrB;EevvBM;IFFN,mBAAsC;IAItC,oBAAuC;EbyvBvC;Ee3vBM;IFFN,oBAAsC;IAItC,qBAAuC;Eb6vBvC;Ee/vBM;IFFN,aAAsC;IAItC,cAAuC;EbiwBvC;EenwBM;IFFN,oBAAsC;IAItC,qBAAuC;EbqwBvC;EevwBM;IFFN,oBAAsC;IAItC,qBAAuC;EbywBvC;Ee3wBM;IFFN,aAAsC;IAItC,cAAuC;Eb6wBvC;Ee/wBM;IFFN,oBAAsC;IAItC,qBAAuC;EbixBvC;EenxBM;IFFN,oBAAsC;IAItC,qBAAuC;EbqxBvC;EevxBM;IFFN,aAAsC;IAItC,cAAuC;EbyxBvC;Ee3xBM;IFFN,oBAAsC;IAItC,qBAAuC;Eb6xBvC;Ee/xBM;IFFN,oBAAsC;IAItC,qBAAuC;EbiyBvC;EenyBM;IFFN,cAAsC;IAItC,eAAuC;EbqyBvC;EelyBI;IAAwB,SAAS;EfqyBrC;EenyBI;IAAuB,SZ2KG;EH2nB9B;EenyBM;IAAwB,QADZ;EfuyBlB;EetyBM;IAAwB,QADZ;Ef0yBlB;EezyBM;IAAwB,QADZ;Ef6yBlB;Ee5yBM;IAAwB,QADZ;EfgzBlB;Ee/yBM;IAAwB,QADZ;EfmzBlB;EelzBM;IAAwB,QADZ;EfszBlB;EerzBM;IAAwB,QADZ;EfyzBlB;EexzBM;IAAwB,QADZ;Ef4zBlB;Ee3zBM;IAAwB,QADZ;Ef+zBlB;Ee9zBM;IAAwB,QADZ;Efk0BlB;Eej0BM;IAAwB,SADZ;Efq0BlB;Eep0BM;IAAwB,SADZ;Efw0BlB;Eev0BM;IAAwB,SADZ;Ef20BlB;Eep0BQ;IFTR,cAA4B;Ebg1B5B;Eev0BQ;IFTR,sBAA8C;Ebm1B9C;Ee10BQ;IFTR,uBAA8C;Ebs1B9C;Ee70BQ;IFTR,gBAA8C;Eby1B9C;Eeh1BQ;IFTR,uBAA8C;Eb41B9C;Een1BQ;IFTR,uBAA8C;Eb+1B9C;Eet1BQ;IFTR,gBAA8C;Ebk2B9C;Eez1BQ;IFTR,uBAA8C;Ebq2B9C;Ee51BQ;IFTR,uBAA8C;Ebw2B9C;Ee/1BQ;IFTR,gBAA8C;Eb22B9C;Eel2BQ;IFTR,uBAA8C;Eb82B9C;Eer2BQ;IFTR,uBAA8C;Ebi3B9C;AACF;;Acv2BI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;Efy4BrB;Eev4BI;IACE,cAAc;IACd,WAAW;IACX,eAAe;Efy4BrB;Eer4BM;IFFN,mBAAsC;IAItC,oBAAuC;Ebu4BvC;Eez4BM;IFFN,oBAAsC;IAItC,qBAAuC;Eb24BvC;Ee74BM;IFFN,aAAsC;IAItC,cAAuC;Eb+4BvC;Eej5BM;IFFN,oBAAsC;IAItC,qBAAuC;Ebm5BvC;Eer5BM;IFFN,oBAAsC;IAItC,qBAAuC;Ebu5BvC;Eez5BM;IFFN,aAAsC;IAItC,cAAuC;Eb25BvC;Ee75BM;IFFN,oBAAsC;IAItC,qBAAuC;Eb+5BvC;Eej6BM;IFFN,oBAAsC;IAItC,qBAAuC;Ebm6BvC;Eer6BM;IFFN,aAAsC;IAItC,cAAuC;Ebu6BvC;Eez6BM;IFFN,oBAAsC;IAItC,qBAAuC;Eb26BvC;Ee76BM;IFFN,oBAAsC;IAItC,qBAAuC;Eb+6BvC;Eej7BM;IFFN,cAAsC;IAItC,eAAuC;Ebm7BvC;Eeh7BI;IAAwB,SAAS;Efm7BrC;Eej7BI;IAAuB,SZ2KG;EHywB9B;Eej7BM;IAAwB,QADZ;Efq7BlB;Eep7BM;IAAwB,QADZ;Efw7BlB;Eev7BM;IAAwB,QADZ;Ef27BlB;Ee17BM;IAAwB,QADZ;Ef87BlB;Ee77BM;IAAwB,QADZ;Efi8BlB;Eeh8BM;IAAwB,QADZ;Efo8BlB;Een8BM;IAAwB,QADZ;Efu8BlB;Eet8BM;IAAwB,QADZ;Ef08BlB;Eez8BM;IAAwB,QADZ;Ef68BlB;Ee58BM;IAAwB,QADZ;Efg9BlB;Ee/8BM;IAAwB,SADZ;Efm9BlB;Eel9BM;IAAwB,SADZ;Efs9BlB;Eer9BM;IAAwB,SADZ;Efy9BlB;Eel9BQ;IFTR,cAA4B;Eb89B5B;Eer9BQ;IFTR,sBAA8C;Ebi+B9C;Eex9BQ;IFTR,uBAA8C;Ebo+B9C;Ee39BQ;IFTR,gBAA8C;Ebu+B9C;Ee99BQ;IFTR,uBAA8C;Eb0+B9C;Eej+BQ;IFTR,uBAA8C;Eb6+B9C;Eep+BQ;IFTR,gBAA8C;Ebg/B9C;Eev+BQ;IFTR,uBAA8C;Ebm/B9C;Ee1+BQ;IFTR,uBAA8C;Ebs/B9C;Ee7+BQ;IFTR,gBAA8C;Eby/B9C;Eeh/BQ;IFTR,uBAA8C;Eb4/B9C;Een/BQ;IFTR,uBAA8C;Eb+/B9C;AACF;;Acr/BI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;EfuhCrB;EerhCI;IACE,cAAc;IACd,WAAW;IACX,eAAe;EfuhCrB;EenhCM;IFFN,mBAAsC;IAItC,oBAAuC;EbqhCvC;EevhCM;IFFN,oBAAsC;IAItC,qBAAuC;EbyhCvC;Ee3hCM;IFFN,aAAsC;IAItC,cAAuC;Eb6hCvC;Ee/hCM;IFFN,oBAAsC;IAItC,qBAAuC;EbiiCvC;EeniCM;IFFN,oBAAsC;IAItC,qBAAuC;EbqiCvC;EeviCM;IFFN,aAAsC;IAItC,cAAuC;EbyiCvC;Ee3iCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb6iCvC;Ee/iCM;IFFN,oBAAsC;IAItC,qBAAuC;EbijCvC;EenjCM;IFFN,aAAsC;IAItC,cAAuC;EbqjCvC;EevjCM;IFFN,oBAAsC;IAItC,qBAAuC;EbyjCvC;Ee3jCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb6jCvC;Ee/jCM;IFFN,cAAsC;IAItC,eAAuC;EbikCvC;Ee9jCI;IAAwB,SAAS;EfikCrC;Ee/jCI;IAAuB,SZ2KG;EHu5B9B;Ee/jCM;IAAwB,QADZ;EfmkClB;EelkCM;IAAwB,QADZ;EfskClB;EerkCM;IAAwB,QADZ;EfykClB;EexkCM;IAAwB,QADZ;Ef4kClB;Ee3kCM;IAAwB,QADZ;Ef+kClB;Ee9kCM;IAAwB,QADZ;EfklClB;EejlCM;IAAwB,QADZ;EfqlClB;EeplCM;IAAwB,QADZ;EfwlClB;EevlCM;IAAwB,QADZ;Ef2lClB;Ee1lCM;IAAwB,QADZ;Ef8lClB;Ee7lCM;IAAwB,SADZ;EfimClB;EehmCM;IAAwB,SADZ;EfomClB;EenmCM;IAAwB,SADZ;EfumClB;EehmCQ;IFTR,cAA4B;Eb4mC5B;EenmCQ;IFTR,sBAA8C;Eb+mC9C;EetmCQ;IFTR,uBAA8C;EbknC9C;EezmCQ;IFTR,gBAA8C;EbqnC9C;Ee5mCQ;IFTR,uBAA8C;EbwnC9C;Ee/mCQ;IFTR,uBAA8C;Eb2nC9C;EelnCQ;IFTR,gBAA8C;Eb8nC9C;EernCQ;IFTR,uBAA8C;EbioC9C;EexnCQ;IFTR,uBAA8C;EbooC9C;Ee3nCQ;IFTR,gBAA8C;EbuoC9C;Ee9nCQ;IFTR,uBAA8C;Eb0oC9C;EejoCQ;IFTR,uBAA8C;Eb6oC9C;AACF;;AcnoCI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;EfqqCrB;EenqCI;IACE,cAAc;IACd,WAAW;IACX,eAAe;EfqqCrB;EejqCM;IFFN,mBAAsC;IAItC,oBAAuC;EbmqCvC;EerqCM;IFFN,oBAAsC;IAItC,qBAAuC;EbuqCvC;EezqCM;IFFN,aAAsC;IAItC,cAAuC;Eb2qCvC;Ee7qCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb+qCvC;EejrCM;IFFN,oBAAsC;IAItC,qBAAuC;EbmrCvC;EerrCM;IFFN,aAAsC;IAItC,cAAuC;EburCvC;EezrCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb2rCvC;Ee7rCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb+rCvC;EejsCM;IFFN,aAAsC;IAItC,cAAuC;EbmsCvC;EersCM;IFFN,oBAAsC;IAItC,qBAAuC;EbusCvC;EezsCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb2sCvC;Ee7sCM;IFFN,cAAsC;IAItC,eAAuC;Eb+sCvC;Ee5sCI;IAAwB,SAAS;Ef+sCrC;Ee7sCI;IAAuB,SZ2KG;EHqiC9B;Ee7sCM;IAAwB,QADZ;EfitClB;EehtCM;IAAwB,QADZ;EfotClB;EentCM;IAAwB,QADZ;EfutClB;EettCM;IAAwB,QADZ;Ef0tClB;EeztCM;IAAwB,QADZ;Ef6tClB;Ee5tCM;IAAwB,QADZ;EfguClB;Ee/tCM;IAAwB,QADZ;EfmuClB;EeluCM;IAAwB,QADZ;EfsuClB;EeruCM;IAAwB,QADZ;EfyuClB;EexuCM;IAAwB,QADZ;Ef4uClB;Ee3uCM;IAAwB,SADZ;Ef+uClB;Ee9uCM;IAAwB,SADZ;EfkvClB;EejvCM;IAAwB,SADZ;EfqvClB;Ee9uCQ;IFTR,cAA4B;Eb0vC5B;EejvCQ;IFTR,sBAA8C;Eb6vC9C;EepvCQ;IFTR,uBAA8C;EbgwC9C;EevvCQ;IFTR,gBAA8C;EbmwC9C;Ee1vCQ;IFTR,uBAA8C;EbswC9C;Ee7vCQ;IFTR,uBAA8C;EbywC9C;EehwCQ;IFTR,gBAA8C;Eb4wC9C;EenwCQ;IFTR,uBAA8C;Eb+wC9C;EetwCQ;IFTR,uBAA8C;EbkxC9C;EezwCQ;IFTR,gBAA8C;EbqxC9C;Ee5wCQ;IFTR,uBAA8C;EbwxC9C;Ee/wCQ;IFTR,uBAA8C;Eb2xC9C;AACF;;AgBz0CA;EACE,WAAW;EACX,mBb2HW;Ea1HX,cbSgB;AHm0ClB;;AgB/0CA;;EAQI,gBb8UgC;Ea7UhC,mBAAmB;EACnB,6BbJc;AHg1ClB;;AgBt1CA;EAcI,sBAAsB;EACtB,gCbTc;AHq1ClB;;AgB31CA;EAmBI,6Bbbc;AHy1ClB;;AgBn0CA;;EAGI,ebwT+B;AH6gCnC;;AgB5zCA;EACE,yBbnCgB;AHk2ClB;;AgBh0CA;;EAKI,yBbvCc;AHu2ClB;;AgBr0CA;;EAWM,wBAA4C;AhB+zClD;;AgB1zCA;;;;EAKI,SAAS;AhB4zCb;;AgBpzCA;EAEI,qCb1DW;AHg3Cf;;AKr3CE;EW2EI,cbvEY;EawEZ,sCbvES;AHq3Cf;;AiBj4CE;;;EAII,yBC2E4D;AlBwzClE;;AiBv4CE;;;;EAYM,qBCmE0D;AlB+zClE;;AKv4CE;EYiBM,yBAJsC;AjB83C9C;;AiB/3CE;;EASQ,yBARoC;AjBm4C9C;;AiBv5CE;;;EAII,yBC2E4D;AlB80ClE;;AiB75CE;;;;EAYM,qBCmE0D;AlBq1ClE;;AK75CE;EYiBM,yBAJsC;AjBo5C9C;;AiBr5CE;;EASQ,yBARoC;AjBy5C9C;;AiB76CE;;;EAII,yBC2E4D;AlBo2ClE;;AiBn7CE;;;;EAYM,qBCmE0D;AlB22ClE;;AKn7CE;EYiBM,yBAJsC;AjB06C9C;;AiB36CE;;EASQ,yBARoC;AjB+6C9C;;AiBn8CE;;;EAII,yBC2E4D;AlB03ClE;;AiBz8CE;;;;EAYM,qBCmE0D;AlBi4ClE;;AKz8CE;EYiBM,yBAJsC;AjBg8C9C;;AiBj8CE;;EASQ,yBARoC;AjBq8C9C;;AiBz9CE;;;EAII,yBC2E4D;AlBg5ClE;;AiB/9CE;;;;EAYM,qBCmE0D;AlBu5ClE;;AK/9CE;EYiBM,yBAJsC;AjBs9C9C;;AiBv9CE;;EASQ,yBARoC;AjB29C9C;;AiB/+CE;;;EAII,yBC2E4D;AlBs6ClE;;AiBr/CE;;;;EAYM,qBCmE0D;AlB66ClE;;AKr/CE;EYiBM,yBAJsC;AjB4+C9C;;AiB7+CE;;EASQ,yBARoC;AjBi/C9C;;AiBrgDE;;;EAII,yBC2E4D;AlB47ClE;;AiB3gDE;;;;EAYM,qBCmE0D;AlBm8ClE;;AK3gDE;EYiBM,yBAJsC;AjBkgD9C;;AiBngDE;;EASQ,yBARoC;AjBugD9C;;AiB3hDE;;;EAII,yBC2E4D;AlBk9ClE;;AiBjiDE;;;;EAYM,qBCmE0D;AlBy9ClE;;AKjiDE;EYiBM,yBAJsC;AjBwhD9C;;AiBzhDE;;EASQ,yBARoC;AjB6hD9C;;AiBjjDE;;;EAII,sCdQS;AH2iDf;;AKhjDE;EYiBM,sCAJsC;AjBuiD9C;;AiBxiDE;;EASQ,sCARoC;AjB4iD9C;;AgBt9CA;EAGM,Wb3GS;Ea4GT,yBbpGY;EaqGZ,qBb2PqD;AH4tC3D;;AgB59CA;EAWM,cb5GY;Ea6GZ,yBblHY;EamHZ,qBblHY;AHukDlB;;AgBh9CA;EACE,Wb3Ha;Ea4Hb,yBbpHgB;AHukDlB;;AgBr9CA;;;EAOI,qBbuOuD;AH6uC3D;;AgB39CA;EAWI,SAAS;AhBo9Cb;;AgB/9CA;EAgBM,2Cb1IS;AH6lDf;;AKxlDE;EW4IM,WbjJO;EakJP,4CblJO;AHkmDf;;AchiDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBk8CvC;EgBv8CG;IASK,SAAS;EhBi8CjB;AACF;;Ac5iDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB88CvC;EgBn9CG;IASK,SAAS;EhB68CjB;AACF;;AcxjDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB09CvC;EgB/9CG;IASK,SAAS;EhBy9CjB;AACF;;AcpkDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBs+CvC;EgB3+CG;IASK,SAAS;EhBq+CjB;AACF;;AgBp/CA;EAOQ,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,iCAAiC;AhBi/CzC;;AgB3/CA;EAcU,SAAS;AhBi/CnB;;AmB9pDA;EACE,cAAc;EACd,WAAW;EACX,mChBqe2H;EgBpe3H,yBhBqXkC;EChQ9B,eAtCY;Ee5EhB,gBhB8Q+B;EgB7Q/B,gBhBkR+B;EgBjR/B,chBDgB;EgBEhB,sBhBTa;EgBUb,4BAA4B;EAC5B,yBhBPgB;EONd,sBPqOgC;EiBpO9B,wEjB4e4F;AHksClG;;AoBzqDI;EDLJ;ICMM,gBAAgB;EpB6qDpB;AACF;;AmBprDA;EAsBI,6BAA6B;EAC7B,SAAS;AnBkqDb;;AqBlrDE;EACE,clBAc;EkBCd,sBlBRW;EkBSX,qBlBgdsE;EkB/ctE,UAAU;EAKR,gDlBcW;AHmqDjB;;AmBjsDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnBqqDd;;AmBtsDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnBqqDd;;AmBtsDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnBqqDd;;AmBtsDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnBqqDd;;AmBtsDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnBqqDd;;AmBtsDA;EA2CI,yBhBxCc;EgB0Cd,UAAU;AnB8pDd;;AmB1pDA;EAOI,chBhDc;EgBiDd,sBhBxDW;AH+sDf;;AmBlpDA;;EAEE,cAAc;EACd,WAAW;AnBqpDb;;AmB3oDA;EACE,iCAA+D;EAC/D,oCAAkE;EAClE,gBAAgB;EfZd,kBAAW;Eecb,gBhB0M+B;AHo8CjC;;AmB3oDA;EACE,+BAAkE;EAClE,kCAAqE;EfoCjE,kBAtCY;EeIhB,gBhBuI+B;AHugDjC;;AmB3oDA;EACE,gCAAkE;EAClE,mCAAqE;Ef6BjE,mBAtCY;EeWhB,gBhBiI+B;AH6gDjC;;AmBroDA;EACE,cAAc;EACd,WAAW;EACX,qBhB8QmC;EgB7QnC,wBhB6QmC;EgB5QnC,gBAAgB;EAChB,gBhB6K+B;EgB5K/B,chBpGgB;EgBqGhB,6BAA6B;EAC7B,yBAAyB;EACzB,mBAAmC;AnBwoDrC;;AmBlpDA;EAcI,gBAAgB;EAChB,eAAe;AnBwoDnB;;AmB5nDA;EACE,kChBsWqI;EgBrWrI,uBhB+PiC;EC1Q7B,mBAtCY;EemDhB,gBhByF+B;EOhO7B,qBPuO+B;AHgiDnC;;AmB5nDA;EACE,gChB+VqI;EgB9VrI,oBhB4PgC;EC/Q5B,kBAtCY;Ee2DhB,gBhBgF+B;EO/N7B,qBPsO+B;AHyiDnC;;AmB3nDA;EAGI,YAAY;AnB4nDhB;;AmBxnDA;EACE,YAAY;AnB2nDd;;AmBnnDA;EACE,mBhBoV0C;AHkyC5C;;AmBnnDA;EACE,cAAc;EACd,mBhBqU4C;AHizC9C;;AmB9mDA;EACE,aAAa;EACb,eAAe;EACf,kBAA0C;EAC1C,iBAAyC;AnBinD3C;;AmBrnDA;;EAQI,kBAA0C;EAC1C,iBAAyC;AnBknD7C;;AmBzmDA;EACE,kBAAkB;EAClB,cAAc;EACd,qBhB0S6C;AHk0C/C;;AmBzmDA;EACE,kBAAkB;EAClB,kBhBsS2C;EgBrS3C,qBhBoS6C;AHw0C/C;;AmB/mDA;EAMI,chBxMc;AHqzDlB;;AmBzmDA;EACE,gBAAgB;AnB4mDlB;;AmBzmDA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,eAAe;EACf,qBhByR4C;AHm1C9C;;AmBhnDA;EAQI,gBAAgB;EAChB,aAAa;EACb,uBhBoR4C;EgBnR5C,cAAc;AnB4mDlB;;AqBtzDE;EACE,aAAa;EACb,WAAW;EACX,mBlBmd0C;EC5a1C,cAAW;EiBrCX,clBQa;AHizDjB;;AqBtzDE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBqyBqC;EkBpyBrC,iBAAiB;EjBkFf,mBAtCY;EiB1Cd,gBlBiP6B;EkBhP7B,WlBzCW;EkB0CX,wClBNa;EOtCb,sBPqOgC;AHioDpC;;AqBrzDI;EAEE,qBlBbW;EkBgBT,oClB+a2F;EkB9a3F,4PHhBmI;EGiBnI,4BAA4B;EAC5B,2DlB8a6F;EkB7a7F,gElB4awF;AHy4ChG;;AqB9zDI;EAaI,qBlBxBS;EkByBT,gDlBzBS;AH80DjB;;AqBn0DI;;;EAmBI,cAAc;ArBszDtB;;AqB/yDI;EAGI,oClBuZ2F;EkBtZ3F,kFlBwZ6F;AHw5CrG;;AqB1yDI;EAEE,qBlBjDW;EkBoDT,sDlBoe0J;EkBne1J,6gBAAkJ;ArB0yD1J;;AqBhzDI;EAUI,qBlBzDS;EkB0DT,gDlB1DS;AHo2DjB;;AqBrzDI;;;EAgBI,cAAc;ArB2yDtB;;AqBpyDI;;;EAII,cAAc;ArBsyDtB;;AqBhyDI;EAGI,clBnFS;AHo3DjB;;AqBpyDI;;;EAQI,cAAc;ArBkyDtB;;AqB5xDI;EAGI,clBjGS;AH83DjB;;AqBhyDI;EAMM,qBlBpGO;AHk4DjB;;AqBpyDI;;;EAYI,cAAc;ArB8xDtB;;AqB1yDI;EAiBM,qBAAkC;ECpJxC,yBDqJ+C;ArB6xDnD;;AqB/yDI;EAwBM,gDlBtHO;AHi5DjB;;AqBnzDI;EA4BM,qBlB1HO;AHq5DjB;;AqBnxDI;EAGI,qBlBrIS;AHy5DjB;;AqBvxDI;;;EAQI,cAAc;ArBqxDtB;;AqB7xDI;EAaM,qBlB/IO;EkBgJP,gDlBhJO;AHo6DjB;;AqBj7DE;EACE,aAAa;EACb,WAAW;EACX,mBlBmd0C;EC5a1C,cAAW;EiBrCX,clBKa;AH+6DjB;;AqBj7DE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBqyBqC;EkBpyBrC,iBAAiB;EjBkFf,mBAtCY;EiB1Cd,gBlBiP6B;EkBhP7B,WlBzCW;EkB0CX,wClBTa;EOnCb,sBPqOgC;AH4vDpC;;AqBh7DI;EAEE,qBlBhBW;EkBmBT,oClB+a2F;EkB9a3F,sSHhBmI;EGiBnI,4BAA4B;EAC5B,2DlB8a6F;EkB7a7F,gElB4awF;AHogDhG;;AqBz7DI;EAaI,qBlB3BS;EkB4BT,gDlB5BS;AH48DjB;;AqB97DI;;;EAmBI,cAAc;ArBi7DtB;;AqB16DI;EAGI,oClBuZ2F;EkBtZ3F,kFlBwZ6F;AHmhDrG;;AqBr6DI;EAEE,qBlBpDW;EkBuDT,sDlBoe0J;EkBne1J,ujBAAkJ;ArBq6D1J;;AqB36DI;EAUI,qBlB5DS;EkB6DT,gDlB7DS;AHk+DjB;;AqBh7DI;;;EAgBI,cAAc;ArBs6DtB;;AqB/5DI;;;EAII,cAAc;ArBi6DtB;;AqB35DI;EAGI,clBtFS;AHk/DjB;;AqB/5DI;;;EAQI,cAAc;ArB65DtB;;AqBv5DI;EAGI,clBpGS;AH4/DjB;;AqB35DI;EAMM,qBlBvGO;AHggEjB;;AqB/5DI;;;EAYI,cAAc;ArBy5DtB;;AqBr6DI;EAiBM,qBAAkC;ECpJxC,yBDqJ+C;ArBw5DnD;;AqB16DI;EAwBM,gDlBzHO;AH+gEjB;;AqB96DI;EA4BM,qBlB7HO;AHmhEjB;;AqB94DI;EAGI,qBlBxIS;AHuhEjB;;AqBl5DI;;;EAQI,cAAc;ArBg5DtB;;AqBx5DI;EAaM,qBlBlJO;EkBmJP,gDlBnJO;AHkiEjB;;AmBz0DA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;AnB40DrB;;AmB/0DA;EASI,WAAW;AnB00Df;;AcxhEI;EKqMJ;IAeM,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;EnBy0DpB;EmB31DF;IAuBM,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;EnBu0DpB;EmBl2DF;IAgCM,qBAAqB;IACrB,WAAW;IACX,sBAAsB;EnBq0D1B;EmBv2DF;IAuCM,qBAAqB;EnBm0DzB;EmB12DF;;IA4CM,WAAW;EnBk0Df;EmB92DF;IAkDM,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,WAAW;IACX,eAAe;EnB+zDnB;EmBr3DF;IAyDM,kBAAkB;IAClB,cAAc;IACd,aAAa;IACb,qBhB2LwC;IgB1LxC,cAAc;EnB+zDlB;EmB53DF;IAiEM,mBAAmB;IACnB,uBAAuB;EnB8zD3B;EmBh4DF;IAqEM,gBAAgB;EnB8zDpB;AACF;;AuB/nEA;EACE,qBAAqB;EAErB,gBpBkR+B;EoBjR/B,cpBMgB;EoBLhB,kBAAkB;EAClB,sBAAsB;EACtB,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECsF3C,yBrB0RkC;EChQ9B,eAtCY;EoBchB,gBrByL+B;EO3R7B,sBPqOgC;EiBpO9B,qIjBqb6I;AH0tDnJ;;AoB1oEI;EGLJ;IHMM,gBAAgB;EpB8oEpB;AACF;;AK/oEE;EkBQE,cpBJc;EoBKd,qBAAqB;AvB2oEzB;;AuB1pEA;EAoBI,UAAU;EACV,gDpBSa;AHioEjB;;AuB/pEA;EA2BI,apB8Y6B;AH0vDjC;;AuBznEA;;EAEE,oBAAoB;AvB4nEtB;;AuBnnEE;ECrDA,WrBCa;EmBDX,yBnB8Ba;EqB5Bf,qBrB4Be;AHgpEjB;;AKxqEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBqrE7H;;AwBzqEE;EAMI,gDAAiF;AxBuqEvF;;AwBlqEE;EAEE,WrBvBW;EqBwBX,yBrBKa;EqBJb,qBrBIa;AHgqEjB;;AwB7pEE;;EAGE,WrBnCW;EqBoCX,yBAtCuK;EA0CvK,qBA1C+M;AxBssEnN;;AwB1pEI;;EAKI,gDAAiF;AxB0pEzF;;AuBrpEE;ECrDA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB;AHysElB;;AK1sEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxButE7H;;AwB3sEE;EAMI,iDAAiF;AxBysEvF;;AwBpsEE;EAEE,WrBvBW;EqBwBX,yBrBlBc;EqBmBd,qBrBnBc;AHytElB;;AwB/rEE;;EAGE,WrBnCW;EqBoCX,yBAtCuK;EA0CvK,qBA1C+M;AxBwuEnN;;AwB5rEI;;EAKI,iDAAiF;AxB4rEzF;;AuBvrEE;ECrDA,WrBCa;EmBDX,yBnBqCa;EqBnCf,qBrBmCe;AH6sEjB;;AK5uEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxByvE7H;;AwB7uEE;EAMI,+CAAiF;AxB2uEvF;;AwBtuEE;EAEE,WrBvBW;EqBwBX,yBrBYa;EqBXb,qBrBWa;AH6tEjB;;AwBjuEE;;EAGE,WrBnCW;EqBoCX,yBAtCuK;EA0CvK,qBA1C+M;AxB0wEnN;;AwB9tEI;;EAKI,+CAAiF;AxB8tEzF;;AuBztEE;ECrDA,WrBCa;EmBDX,yBnBuCa;EqBrCf,qBrBqCe;AH6uEjB;;AK9wEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB2xE7H;;AwB/wEE;EAMI,gDAAiF;AxB6wEvF;;AwBxwEE;EAEE,WrBvBW;EqBwBX,yBrBca;EqBbb,qBrBaa;AH6vEjB;;AwBnwEE;;EAGE,WrBnCW;EqBoCX,yBAtCuK;EA0CvK,qBA1C+M;AxB4yEnN;;AwBhwEI;;EAKI,gDAAiF;AxBgwEzF;;AuB3vEE;ECrDA,crBUgB;EmBVd,yBnBoCa;EqBlCf,qBrBkCe;AHkxEjB;;AKhzEE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxB6zE7H;;AwBjzEE;EAMI,gDAAiF;AxB+yEvF;;AwB1yEE;EAEE,crBdc;EqBed,yBrBWa;EqBVb,qBrBUa;AHkyEjB;;AwBryEE;;EAGE,crB1Bc;EqB2Bd,yBAtCuK;EA0CvK,qBA1C+M;AxB80EnN;;AwBlyEI;;EAKI,gDAAiF;AxBkyEzF;;AuB7xEE;ECrDA,WrBCa;EmBDX,yBnBkCa;EqBhCf,qBrBgCe;AHszEjB;;AKl1EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB+1E7H;;AwBn1EE;EAMI,+CAAiF;AxBi1EvF;;AwB50EE;EAEE,WrBvBW;EqBwBX,yBrBSa;EqBRb,qBrBQa;AHs0EjB;;AwBv0EE;;EAGE,WrBnCW;EqBoCX,yBAtCuK;EA0CvK,qBA1C+M;AxBg3EnN;;AwBp0EI;;EAKI,+CAAiF;AxBo0EzF;;AuB/zEE;ECrDA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB;AHw3ElB;;AKp3EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBi4E7H;;AwBr3EE;EAMI,iDAAiF;AxBm3EvF;;AwB92EE;EAEE,crBdc;EqBed,yBrBvBc;EqBwBd,qBrBxBc;AHw4ElB;;AwBz2EE;;EAGE,crB1Bc;EqB2Bd,yBAtCuK;EA0CvK,qBA1C+M;AxBk5EnN;;AwBt2EI;;EAKI,iDAAiF;AxBs2EzF;;AuBj2EE;ECrDA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB;AHm5ElB;;AKt5EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBm6E7H;;AwBv5EE;EAMI,8CAAiF;AxBq5EvF;;AwBh5EE;EAEE,WrBvBW;EqBwBX,yBrBhBc;EqBiBd,qBrBjBc;AHm6ElB;;AwB34EE;;EAGE,WrBnCW;EqBoCX,yBAtCuK;EA0CvK,qBA1C+M;AxBo7EnN;;AwBx4EI;;EAKI,8CAAiF;AxBw4EzF;;AuB73EE;ECJA,crBzBe;EqB0Bf,qBrB1Be;AH+5EjB;;AKv7EE;EmBqDE,WrB1DW;EqB2DX,yBrB9Ba;EqB+Bb,qBrB/Ba;AHq6EjB;;AwBn4EE;EAEE,+CrBpCa;AHy6EjB;;AwBl4EE;EAEE,crBzCa;EqB0Cb,6BAA6B;AxBo4EjC;;AwBj4EE;;EAGE,WrB7EW;EqB8EX,yBrBjDa;EqBkDb,qBrBlDa;AHq7EjB;;AwBj4EI;;EAKI,+CrBzDS;AH07EjB;;AuB75EE;ECJA,crBhDgB;EqBiDhB,qBrBjDgB;AHs9ElB;;AKv9EE;EmBqDE,WrB1DW;EqB2DX,yBrBrDc;EqBsDd,qBrBtDc;AH49ElB;;AwBn6EE;EAEE,iDrB3Dc;AHg+ElB;;AwBl6EE;EAEE,crBhEc;EqBiEd,6BAA6B;AxBo6EjC;;AwBj6EE;;EAGE,WrB7EW;EqB8EX,yBrBxEc;EqByEd,qBrBzEc;AH4+ElB;;AwBj6EI;;EAKI,iDrBhFU;AHi/ElB;;AuB77EE;ECJA,crBlBe;EqBmBf,qBrBnBe;AHw9EjB;;AKv/EE;EmBqDE,WrB1DW;EqB2DX,yBrBvBa;EqBwBb,qBrBxBa;AH89EjB;;AwBn8EE;EAEE,+CrB7Ba;AHk+EjB;;AwBl8EE;EAEE,crBlCa;EqBmCb,6BAA6B;AxBo8EjC;;AwBj8EE;;EAGE,WrB7EW;EqB8EX,yBrB1Ca;EqB2Cb,qBrB3Ca;AH8+EjB;;AwBj8EI;;EAKI,+CrBlDS;AHm/EjB;;AuB79EE;ECJA,crBhBe;EqBiBf,qBrBjBe;AHs/EjB;;AKvhFE;EmBqDE,WrB1DW;EqB2DX,yBrBrBa;EqBsBb,qBrBtBa;AH4/EjB;;AwBn+EE;EAEE,gDrB3Ba;AHggFjB;;AwBl+EE;EAEE,crBhCa;EqBiCb,6BAA6B;AxBo+EjC;;AwBj+EE;;EAGE,WrB7EW;EqB8EX,yBrBxCa;EqByCb,qBrBzCa;AH4gFjB;;AwBj+EI;;EAKI,gDrBhDS;AHihFjB;;AuB7/EE;ECJA,crBnBe;EqBoBf,qBrBpBe;AHyhFjB;;AKvjFE;EmBqDE,crBjDc;EqBkDd,yBrBxBa;EqByBb,qBrBzBa;AH+hFjB;;AwBngFE;EAEE,+CrB9Ba;AHmiFjB;;AwBlgFE;EAEE,crBnCa;EqBoCb,6BAA6B;AxBogFjC;;AwBjgFE;;EAGE,crBpEc;EqBqEd,yBrB3Ca;EqB4Cb,qBrB5Ca;AH+iFjB;;AwBjgFI;;EAKI,+CrBnDS;AHojFjB;;AuB7hFE;ECJA,crBrBe;EqBsBf,qBrBtBe;AH2jFjB;;AKvlFE;EmBqDE,WrB1DW;EqB2DX,yBrB1Ba;EqB2Bb,qBrB3Ba;AHikFjB;;AwBniFE;EAEE,+CrBhCa;AHqkFjB;;AwBliFE;EAEE,crBrCa;EqBsCb,6BAA6B;AxBoiFjC;;AwBjiFE;;EAGE,WrB7EW;EqB8EX,yBrB7Ca;EqB8Cb,qBrB9Ca;AHilFjB;;AwBjiFI;;EAKI,+CrBrDS;AHslFjB;;AuB7jFE;ECJA,crBrDgB;EqBsDhB,qBrBtDgB;AH2nFlB;;AKvnFE;EmBqDE,crBjDc;EqBkDd,yBrB1Dc;EqB2Dd,qBrB3Dc;AHioFlB;;AwBnkFE;EAEE,iDrBhEc;AHqoFlB;;AwBlkFE;EAEE,crBrEc;EqBsEd,6BAA6B;AxBokFjC;;AwBjkFE;;EAGE,crBpEc;EqBqEd,yBrB7Ec;EqB8Ed,qBrB9Ec;AHipFlB;;AwBjkFI;;EAKI,iDrBrFU;AHspFlB;;AuB7lFE;ECJA,crB9CgB;EqB+ChB,qBrB/CgB;AHopFlB;;AKvpFE;EmBqDE,WrB1DW;EqB2DX,yBrBnDc;EqBoDd,qBrBpDc;AH0pFlB;;AwBnmFE;EAEE,8CrBzDc;AH8pFlB;;AwBlmFE;EAEE,crB9Dc;EqB+Dd,6BAA6B;AxBomFjC;;AwBjmFE;;EAGE,WrB7EW;EqB8EX,yBrBtEc;EqBuEd,qBrBvEc;AH0qFlB;;AwBjmFI;;EAKI,8CrB9EU;AH+qFlB;;AuBlnFA;EACE,gBpB8M+B;EoB7M/B,cpB1Ce;EoB2Cf,qBpB6F4C;AHwhF9C;;AKxrFE;EkBsEE,cpB2F8D;EoB1F9D,0BpB2F+C;AH2hFnD;;AuB7nFA;EAYI,0BpBsF+C;EoBrF/C,gBAAgB;AvBqnFpB;;AuBloFA;EAkBI,cpBjFc;EoBkFd,oBAAoB;AvBonFxB;;AuBzmFA;ECLE,oBrBySgC;EC/Q5B,kBAtCY;EoBchB,gBrB6H+B;EO/N7B,qBPsO+B;AH++EnC;;AuB5mFA;ECTE,uBrBoSiC;EC1Q7B,mBAtCY;EoBchB,gBrB8H+B;EOhO7B,qBPuO+B;AHq/EnC;;AuB1mFA;EACE,cAAc;EACd,WAAW;AvB6mFb;;AuB/mFA;EAMI,kBpBuT+B;AHszEnC;;AuBxmFA;;;EAII,WAAW;AvB0mFf;;AyBhvFA;ELMM,gCjBsP2C;AHw/EjD;;AoBzuFI;EKXJ;ILYM,gBAAgB;EpB6uFpB;AACF;;AyB1vFA;EAII,UAAU;AzB0vFd;;AyBtvFA;EAEI,aAAa;AzBwvFjB;;AyBpvFA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;ELXZ,6BjBuPwC;AH4gF9C;;AoB9vFI;EKGJ;ILFM,gBAAgB;EpBkwFpB;AACF;;A0B9wFA;;;;EAIE,kBAAkB;A1BixFpB;;A0B9wFA;EACE,mBAAmB;A1BixFrB;;A2B7vFI;EACE,qBAAqB;EACrB,oBxB0N0C;EwBzN1C,uBxBwN0C;EwBvN1C,WAAW;EAhCf,uBAA8B;EAC9B,qCAA4C;EAC5C,gBAAgB;EAChB,oCAA2C;A3BiyF7C;;A2B5uFI;EACE,cAAc;A3B+uFpB;;A0BzxFA;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,avBipBsC;EuBhpBtC,aAAa;EACb,WAAW;EACX,gBvButBuC;EuBttBvC,iBAA8B;EAC9B,oBAA4B;EtBsGxB,eAtCY;EsB9DhB,cvBXgB;EuBYhB,gBAAgB;EAChB,gBAAgB;EAChB,sBvBvBa;EuBwBb,4BAA4B;EAC5B,qCvBfa;EOZX,sBPqOgC;AHmlFpC;;A0BpxFI;EACE,WAAW;EACX,OAAO;A1BuxFb;;A0BpxFI;EACE,QAAQ;EACR,UAAU;A1BuxFhB;;Ac3wFI;EYnBA;IACE,WAAW;IACX,OAAO;E1BkyFX;E0B/xFE;IACE,QAAQ;IACR,UAAU;E1BiyFd;AACF;;ActxFI;EYnBA;IACE,WAAW;IACX,OAAO;E1B6yFX;E0B1yFE;IACE,QAAQ;IACR,UAAU;E1B4yFd;AACF;;AcjyFI;EYnBA;IACE,WAAW;IACX,OAAO;E1BwzFX;E0BrzFE;IACE,QAAQ;IACR,UAAU;E1BuzFd;AACF;;Ac5yFI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bm0FX;E0Bh0FE;IACE,QAAQ;IACR,UAAU;E1Bk0Fd;AACF;;A0B5zFA;EAEI,SAAS;EACT,YAAY;EACZ,aAAa;EACb,uBvBorBuC;AH0oE3C;;A2B71FI;EACE,qBAAqB;EACrB,oBxB0N0C;EwBzN1C,uBxBwN0C;EwBvN1C,WAAW;EAzBf,aAAa;EACb,qCAA4C;EAC5C,0BAAiC;EACjC,oCAA2C;A3B03F7C;;A2B50FI;EACE,cAAc;A3B+0FpB;;A0Br0FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,qBvBsqBuC;AHiqE3C;;A2Bp3FI;EACE,qBAAqB;EACrB,oBxB0N0C;EwBzN1C,uBxBwN0C;EwBvN1C,WAAW;EAlBf,mCAA0C;EAC1C,eAAe;EACf,sCAA6C;EAC7C,wBAA+B;A3B04FjC;;A2Bn2FI;EACE,cAAc;A3Bs2FpB;;A2Bn4FI;EDmDE,iBAAiB;A1Bo1FvB;;A0B/0FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,sBvBqpBuC;AH4rE3C;;A2B/4FI;EACE,qBAAqB;EACrB,oBxB0N0C;EwBzN1C,uBxBwN0C;EwBvN1C,WAAW;A3Bk5FjB;;A2Bt5FI;EAgBI,aAAa;A3B04FrB;;A2Bv4FM;EACE,qBAAqB;EACrB,qBxBuMwC;EwBtMxC,uBxBqMwC;EwBpMxC,WAAW;EA9BjB,mCAA0C;EAC1C,yBAAgC;EAChC,sCAA6C;A3By6F/C;;A2Bx4FI;EACE,cAAc;A3B24FpB;;A2Br5FM;EDiDA,iBAAiB;A1Bw2FvB;;A0Bj2FA;EAKI,WAAW;EACX,YAAY;A1Bg2FhB;;A0B31FA;EE9GE,SAAS;EACT,gBAAmB;EACnB,gBAAgB;EAChB,6BzBCgB;AH48FlB;;A0B31FA;EACE,cAAc;EACd,WAAW;EACX,uBvByoBwC;EuBxoBxC,WAAW;EACX,gBvB4J+B;EuB3J/B,cvBhHgB;EuBiHhB,mBAAmB;EACnB,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;A1B81FX;;AKl9FE;EqBmIE,cvB0mBqD;EuBzmBrD,qBAAqB;EJ9IrB,yBnBEc;AHg+FlB;;A0B92FA;EAgCI,WvBnJW;EuBoJX,qBAAqB;EJrJrB,yBnB8Ba;AH08FjB;;A0Bp3FA;EAuCI,cvBpJc;EuBqJd,oBAAoB;EACpB,6BAA6B;A1Bi1FjC;;A0Bz0FA;EACE,cAAc;A1B40FhB;;A0Bx0FA;EACE,cAAc;EACd,sBvBolBwC;EuBnlBxC,gBAAgB;EtBpDZ,mBAtCY;EsB4FhB,cvBxKgB;EuByKhB,mBAAmB;A1B20FrB;;A0Bv0FA;EACE,cAAc;EACd,uBvB0kBwC;EuBzkBxC,cvB7KgB;AHu/FlB;;A6BpgGA;;EAEE,kBAAkB;EAClB,oBAAoB;EACpB,sBAAsB;A7BugGxB;;A6B3gGA;;EAOI,kBAAkB;EAClB,cAAc;A7BygGlB;;AKxgGE;;EwBII,UAAU;A7BygGhB;;A6BthGA;;;;EAkBM,UAAU;A7B2gGhB;;A6BrgGA;EACE,aAAa;EACb,eAAe;EACf,2BAA2B;A7BwgG7B;;A6B3gGA;EAMI,WAAW;A7BygGf;;A6BrgGA;;EAII,iB1B8L6B;AHw0FjC;;A6B1gGA;;EnBhBI,0BmB0B8B;EnBzB9B,6BmByB8B;A7BsgGlC;;A6BhhGA;;EnBFI,yBmBiB6B;EnBhB7B,4BmBgB6B;A7BugGjC;;A6Bv/FA;EACE,wBAAmC;EACnC,uBAAkC;A7B0/FpC;;A6B5/FA;;;EAOI,cAAc;A7B2/FlB;;A6Bx/FE;EACE,eAAe;A7B2/FnB;;A6Bv/FA;EACE,uBAAsC;EACtC,sBAAqC;A7B0/FvC;;A6Bv/FA;EACE,sBAAsC;EACtC,qBAAqC;A7B0/FvC;;A6Bt+FA;EACE,sBAAsB;EACtB,uBAAuB;EACvB,uBAAuB;A7By+FzB;;A6B5+FA;;EAOI,WAAW;A7B0+Ff;;A6Bj/FA;;EAYI,gB1B6G6B;AH63FjC;;A6Bt/FA;;EnBlFI,6BmBoG+B;EnBnG/B,4BmBmG+B;A7B0+FnC;;A6B5/FA;;EnBhGI,yBmBuH4B;EnBtH5B,0BmBsH4B;A7B2+FhC;;A6B19FA;;EAGI,gBAAgB;A7B49FpB;;A6B/9FA;;;;EAOM,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;A7B+9F1B;;A8BxnGA;EACE,kBAAkB;EAClB,aAAa;EACb,eAAe;EACf,oBAAoB;EACpB,WAAW;A9B2nGb;;A8BhoGA;;;;EAWI,kBAAkB;EAClB,cAAc;EAGd,SAAS;EACT,gBAAgB;A9B0nGpB;;A8B1oGA;;;;;;;;;;;;EAqBM,iB3B4M2B;AHw7FjC;;A8BzpGA;;;EA6BI,UAAU;A9BkoGd;;A8B/pGA;EAkCI,UAAU;A9BioGd;;A8BnqGA;;EpBeI,0BoBwBmD;EpBvBnD,6BoBuBmD;A9BkoGvD;;A8BzqGA;;EpB6BI,yBoBWmD;EpBVnD,4BoBUmD;A9BuoGvD;;A8B/qGA;EA8CI,aAAa;EACb,mBAAmB;A9BqoGvB;;A8BprGA;;EpBeI,0BoBmC6E;EpBlC7E,6BoBkC6E;A9BwoGjF;;A8B1rGA;EpB6BI,yBoBsBsE;EpBrBtE,4BoBqBsE;A9B4oG1E;;A8BjoGA;;EAEE,aAAa;A9BooGf;;A8BtoGA;;EAQI,kBAAkB;EAClB,UAAU;A9BmoGd;;A8B5oGA;;EAYM,UAAU;A9BqoGhB;;A8BjpGA;;;;;;;;EAoBI,iB3B+I6B;AHy/FjC;;A8BpoGA;EAAuB,kB3B2IU;AH6/FjC;;A8BvoGA;EAAsB,iB3B0IW;AHigGjC;;A8BnoGA;EACE,aAAa;EACb,mBAAmB;EACnB,yB3BuRkC;E2BtRlC,gBAAgB;E1BsBZ,eAtCY;E0BkBhB,gB3BgL+B;E2B/K/B,gB3BoL+B;E2BnL/B,c3B/FgB;E2BgGhB,kBAAkB;EAClB,mBAAmB;EACnB,yB3BvGgB;E2BwGhB,yB3BtGgB;EONd,sBPqOgC;AH8gGpC;;A8BnpGA;;EAkBI,aAAa;A9BsoGjB;;A8B5nGA;;EAEE,gC3B6WqI;AHkxFvI;;A8B5nGA;;;;;;EAME,oB3BkQgC;EC/Q5B,kBAtCY;E0BqDhB,gB3BsF+B;EO/N7B,qBPsO+B;AHmiGnC;;A8B5nGA;;EAEE,kC3B2VqI;AHoyFvI;;A8B5nGA;;;;;;EAME,uB3B4OiC;EC1Q7B,mBAtCY;E0BsEhB,gB3BsE+B;EOhO7B,qBPuO+B;AHmjGnC;;A8B5nGA;;EAEE,sBAA0E;A9B+nG5E;;A8BpnGA;;;;;;EpB3JI,0BoBiK4B;EpBhK5B,6BoBgK4B;A9BwnGhC;;A8BrnGA;;;;;;EpBtJI,yBoB4J2B;EpB3J3B,4BoB2J2B;A9BynG/B;;A+B/yGA;EACE,kBAAkB;EAClB,cAAc;EACd,kBAA+C;EAC/C,oBAAqE;A/BkzGvE;;A+B/yGA;EACE,oBAAoB;EACpB,kB5Bqf0C;AH6zF5C;;A+B/yGA;EACE,kBAAkB;EAClB,WAAW;EACX,UAAU;A/BkzGZ;;A+BrzGA;EAMI,W5BpBW;E4BqBX,qB5BQa;EmB9Bb,yBnB8Ba;AH4yGjB;;A+B3zGA;EAiBM,gD5BFW;AHgzGjB;;A+B/zGA;EAsBI,qB5BqbsE;AHw3F1E;;A+Bn0GA;EA0BI,W5BxCW;E4ByCX,yB5B8e8E;E4B7e9E,qB5B6e8E;AHg0FlF;;A+Bz0GA;EAkCM,c5B1CY;AHq1GlB;;A+B70GA;EAqCQ,yB5BjDU;AH61GlB;;A+BlyGA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,mBAAmB;A/BqyGrB;;A+BxyGA;EAOI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5B0bwC;E4BzbxC,Y5BybwC;E4BxbxC,oBAAoB;EACpB,WAAW;EACX,sB5B5EW;E4B6EX,yB5BmJ6B;AHkpGjC;;A+BrzGA;EAsBI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5B2awC;E4B1axC,Y5B0awC;E4BzaxC,WAAW;EACX,mCAAgE;A/BmyGpE;;A+B1xGA;ErBrGI,sBPqOgC;AH8pGpC;;A+B9xGA;EAOM,6MbrEqI;AlBg2G3I;;A+BlyGA;EAaM,qB5BnFW;EmB9Bb,yBnB8Ba;AH62GjB;;A+BvyGA;EAkBM,0JbhFqI;AlBy2G3I;;A+B3yGA;EAwBM,wC5B9FW;AHq3GjB;;A+B/yGA;EA2BM,wC5BjGW;AHy3GjB;;A+B/wGA;EAGI,kB5B0Z+C;AHs3FnD;;A+BnxGA;EAQM,uJb1GqI;AlBy3G3I;;A+BvxGA;EAcM,wC5BxHW;AHq4GjB;;A+BnwGA;EACE,qBAA2D;A/BswG7D;;A+BvwGA;EAKM,cAAqD;EACrD,c5BkY+E;E4BjY/E,mBAAmB;EAEnB,qB5BgY4E;AHq4FlF;;A+B9wGA;EAaM,wBAA0I;EAC1I,0BAA+G;EAC/G,uB5B2XiI;E4B1XjI,wB5B0XiI;E4BzXjI,yB5B3KY;E4B6KZ,qB5BsX4E;EiBziB5E,iJjB8f+H;EiB9f/H,yIjB8f+H;EiB9f/H,8KjB8f+H;AH07FrI;;AoBn7GI;EW2JJ;IX1JM,gBAAgB;EpBu7GpB;AACF;;A+B9xGA;EA0BM,sB5BzLS;E4B0LT,sCAA4E;EAA5E,8BAA4E;A/BwwGlF;;A+BnyGA;EAiCM,wC5BnKW;AHy6GjB;;A+B1vGA;EACE,qBAAqB;EACrB,WAAW;EACX,mC5BwR2H;E4BvR3H,0C5BwKkC;EChQ9B,eAtCY;E2BiIhB,gB5BiE+B;E4BhE/B,gB5BqE+B;E4BpE/B,c5B9MgB;E4B+MhB,sBAAsB;EACtB,6M5BmWmI;E4BlWnI,sB5BxNa;E4ByNb,yB5BrNgB;EONd,sBPqOgC;E4BPlC,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B2vGlB;;A+B3wGA;EAmBI,qB5B0PsE;E4BzPtE,UAAU;EAIR,gD5BvMW;AHg8GjB;;A+BjxGA;EAiCM,c5BtOY;E4BuOZ,sB5B9OS;AHk+Gf;;A+BtxGA;EAwCI,YAAY;EACZ,sB5BmIgC;E4BlIhC,sBAAsB;A/BkvG1B;;A+B5xGA;EA8CI,c5BpPc;E4BqPd,yB5BzPc;AH2+GlB;;A+BjyGA;EAoDI,aAAa;A/BivGjB;;A+B7uGA;EACE,kC5BmOqI;E4BlOrI,oB5B2HkC;E4B1HlC,uB5B0HkC;E4BzHlC,oB5B0HiC;EC1Q7B,mBAtCY;AJu6GlB;;A+B7uGA;EACE,gC5B4NqI;E4B3NrI,mB5BwHiC;E4BvHjC,sB5BuHiC;E4BtHjC,kB5BuHgC;EC/Q5B,kBAtCY;AJ+6GlB;;A+BxuGA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mC5B0M2H;E4BzM3H,gBAAgB;A/B2uGlB;;A+BxuGA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mC5BkM2H;E4BjM3H,SAAS;EACT,UAAU;A/B2uGZ;;A+BjvGA;EASI,qB5B+KsE;E4B9KtE,gD5B9Qa;AH0/GjB;;A+BtvGA;EAcI,yB5B7Sc;AHyhHlB;;A+B1vGA;EAmBM,iB5BqUQ;AHs6Fd;;A+B9vGA;EAwBI,0BAA0B;A/B0uG9B;;A+BtuGA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mC5BoK2H;E4BnK3H,yB5BoDkC;E4BlDlC,gB5BlD+B;E4BmD/B,gB5B9C+B;E4B+C/B,c5BjUgB;E4BkUhB,sB5BzUa;E4B0Ub,yB5BtUgB;EONd,sBPqOgC;AHg1GpC;;A+BtvGA;EAkBI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,cAAc;EACd,6B5B8I+F;E4B7I/F,yB5BkCgC;E4BjChC,gB5B9D6B;E4B+D7B,c5BjVc;E4BkVd,iBAAiB;ET1VjB,yBnBGc;E4ByVd,oBAAoB;ErB7VpB,kCqB8VgF;A/BwuGpF;;A+B9tGA;EACE,WAAW;EACX,2BAA+F;EAC/F,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/BiuGlB;;A+BtuGA;EAQI,aAAa;A/BkuGjB;;A+B1uGA;EAY8B,gE5BrVb;AHujHjB;;A+B9uGA;EAa8B,gE5BtVb;AH2jHjB;;A+BlvGA;EAc8B,gE5BvVb;AH+jHjB;;A+BtvGA;EAkBI,SAAS;A/BwuGb;;A+B1vGA;EAsBI,W5B8N6C;E4B7N7C,Y5B6N6C;E4B5N7C,oBAAyE;ET/XzE,yBnB8Ba;E4BmWb,S5B6N0C;EO/lB1C,mBPgmB6C;EiB/lB3C,4GjB8f+H;E4BzHjI,wBAAgB;EAAhB,gBAAgB;A/BuuGpB;;AoBvmHI;EWkWJ;IXjWM,gBAAgB;EpB2mHpB;AACF;;A+B3wGA;ETvWI,yBnBmmB2E;AHmhG/E;;A+B/wGA;EAsCI,W5BuMoC;E4BtMpC,c5BuMqC;E4BtMrC,kBAAkB;EAClB,e5BsMuC;E4BrMvC,yB5B7Yc;E4B8Yd,yBAAyB;ErBnZzB,mBPylBoC;AHwiGxC;;A+BzxGA;EAiDI,W5BmM6C;E4BlM7C,Y5BkM6C;EmB3lB7C,yBnB8Ba;E4B6Xb,S5BmM0C;EO/lB1C,mBPgmB6C;EiB/lB3C,4GjB8f+H;E4B/FjI,qBAAgB;EAAhB,gBAAgB;A/B2uGpB;;AoBroHI;EWkWJ;IXjWM,gBAAgB;EpByoHpB;AACF;;A+BzyGA;ETvWI,yBnBmmB2E;AHijG/E;;A+B7yGA;EAgEI,W5B6KoC;E4B5KpC,c5B6KqC;E4B5KrC,kBAAkB;EAClB,e5B4KuC;E4B3KvC,yB5Bvac;E4Bwad,yBAAyB;ErB7azB,mBPylBoC;AHskGxC;;A+BvzGA;EA2EI,W5ByK6C;E4BxK7C,Y5BwK6C;E4BvK7C,aAAa;EACb,oB5BvD+B;E4BwD/B,mB5BxD+B;EmB9X/B,yBnB8Ba;E4B0Zb,S5BsK0C;EO/lB1C,mBPgmB6C;EiB/lB3C,4GjB8f+H;E4BlEjI,gBAAgB;A/B+uGpB;;AoBtqHI;EWkWJ;IXjWM,gBAAgB;EpB0qHpB;AACF;;A+B10GA;ETvWI,yBnBmmB2E;AHklG/E;;A+B90GA;EA6FI,W5BgJoC;E4B/IpC,c5BgJqC;E4B/IrC,kBAAkB;EAClB,e5B+IuC;E4B9IvC,6BAA6B;EAC7B,yBAAyB;EACzB,oBAA4C;A/BqvGhD;;A+Bx1GA;EAwGI,yB5B3cc;EOLd,mBPylBoC;AH4mGxC;;A+B71GA;EA6GI,kBAAkB;EAClB,yB5Bjdc;EOLd,mBPylBoC;AHknGxC;;A+Bn2GA;EAoHM,yB5BrdY;AHwsHlB;;A+Bv2GA;EAwHM,eAAe;A/BmvGrB;;A+B32GA;EA4HM,yB5B7dY;AHgtHlB;;A+B/2GA;EAgIM,eAAe;A/BmvGrB;;A+Bn3GA;EAoIM,yB5BreY;AHwtHlB;;A+B9uGA;;;EXhfM,4GjB8f+H;AHsuGrI;;AoB/tHI;EW2eJ;;;IX1eM,gBAAgB;EpBquHpB;AACF;;AgC7uHA;EACE,aAAa;EACb,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AhCgvHlB;;AgC7uHA;EACE,cAAc;EACd,oB7BkqBsC;AH8kGxC;;AK/uHE;E2BEE,qBAAqB;AhCivHzB;;AgCtvHA;EAUI,c7BVc;E6BWd,oBAAoB;EACpB,eAAe;AhCgvHnB;;AgCxuHA;EACE,gC7BxBgB;AHmwHlB;;AgC5uHA;EAII,mB7BkM6B;AH0iHjC;;AgChvHA;EAQI,6BAAgD;EtB3BhD,+BP4NgC;EO3NhC,gCP2NgC;AH6iHpC;;AKvwHE;E2B6BI,qC7BnCY;AHixHlB;;AgC1vHA;EAgBM,c7BpCY;E6BqCZ,6BAA6B;EAC7B,yBAAyB;AhC8uH/B;;AgChwHA;;EAwBI,c7B3Cc;E6B4Cd,sB7BnDW;E6BoDX,kC7BpDW;AHiyHf;;AgCvwHA;EA+BI,gB7BuK6B;EOzN7B,yBsBoD4B;EtBnD5B,0BsBmD4B;AhC4uHhC;;AgCnuHA;EtBtEI,sBPqOgC;AHwkHpC;;AgCvuHA;;EAOI,W7B3EW;E6B4EX,yB7B/Ca;AHoxHjB;;AgC5tHA;EAEI,cAAc;EACd,kBAAkB;AhC8tHtB;;AgC1tHA;EAEI,aAAa;EACb,YAAY;EACZ,kBAAkB;AhC4tHtB;;AgCntHA;EAEI,aAAa;AhCqtHjB;;AgCvtHA;EAKI,cAAc;AhCstHlB;;AiC1zHA;EACE,kBAAkB;EAClB,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,8BAA8B;EAC9B,oB9B0GW;AHmtHb;;AiCn0HA;;EAYI,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,8BAA8B;AjC4zHlC;;AiCnzHA;EACE,qBAAqB;EACrB,sB9BoqB+E;E8BnqB/E,yB9BmqB+E;E8BlqB/E,kB9BoFW;ECFP,kBAtCY;E6B1ChB,oBAAoB;EACpB,mBAAmB;AjCszHrB;;AKt1HE;E4BmCE,qBAAqB;AjCuzHzB;;AiC9yHA;EACE,aAAa;EACb,sBAAsB;EACtB,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AjCizHlB;;AiCtzHA;EAQI,gBAAgB;EAChB,eAAe;AjCkzHnB;;AiC3zHA;EAaI,gBAAgB;EAChB,WAAW;AjCkzHf;;AiCzyHA;EACE,qBAAqB;EACrB,mB9B2lBuC;E8B1lBvC,sB9B0lBuC;AHktGzC;;AiChyHA;EACE,gBAAgB;EAChB,YAAY;EAGZ,mBAAmB;AjCiyHrB;;AiC7xHA;EACE,wB9BsmBwC;ECnlBpC,kBAtCY;E6BqBhB,cAAc;EACd,6BAA6B;EAC7B,6BAAuC;EvB3GrC,sBPqOgC;AHuqHpC;;AKj4HE;E4BoGE,qBAAqB;AjCiyHzB;;AiC3xHA;EACE,qBAAqB;EACrB,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,WAAW;EACX,mCAAmC;EACnC,0BAA0B;AjC8xH5B;;Act1HI;EmBkEC;;IAIK,gBAAgB;IAChB,eAAe;EjCsxHvB;AACF;;Ac32HI;EmB+EA;IAUI,qBAAqB;IACrB,2BAA2B;EjCuxHjC;EiClyHG;IAcK,mBAAmB;EjCuxH3B;EiCryHG;IAiBO,kBAAkB;EjCuxH5B;EiCxyHG;IAqBO,qB9ByiB6B;I8BxiB7B,oB9BwiB6B;EH8uGvC;EiC5yHG;;IA6BK,iBAAiB;EjCmxHzB;EiChzHG;IAiCK,wBAAwB;IAGxB,gBAAgB;EjCgxHxB;EiCpzHG;IAwCK,aAAa;EjC+wHrB;AACF;;Ac13HI;EmBkEC;;IAIK,gBAAgB;IAChB,eAAe;EjC0zHvB;AACF;;Ac/4HI;EmB+EA;IAUI,qBAAqB;IACrB,2BAA2B;EjC2zHjC;EiCt0HG;IAcK,mBAAmB;EjC2zH3B;EiCz0HG;IAiBO,kBAAkB;EjC2zH5B;EiC50HG;IAqBO,qB9ByiB6B;I8BxiB7B,oB9BwiB6B;EHkxGvC;EiCh1HG;;IA6BK,iBAAiB;EjCuzHzB;EiCp1HG;IAiCK,wBAAwB;IAGxB,gBAAgB;EjCozHxB;EiCx1HG;IAwCK,aAAa;EjCmzHrB;AACF;;Ac95HI;EmBkEC;;IAIK,gBAAgB;IAChB,eAAe;EjC81HvB;AACF;;Acn7HI;EmB+EA;IAUI,qBAAqB;IACrB,2BAA2B;EjC+1HjC;EiC12HG;IAcK,mBAAmB;EjC+1H3B;EiC72HG;IAiBO,kBAAkB;EjC+1H5B;EiCh3HG;IAqBO,qB9ByiB6B;I8BxiB7B,oB9BwiB6B;EHszGvC;EiCp3HG;;IA6BK,iBAAiB;EjC21HzB;EiCx3HG;IAiCK,wBAAwB;IAGxB,gBAAgB;EjCw1HxB;EiC53HG;IAwCK,aAAa;EjCu1HrB;AACF;;Acl8HI;EmBkEC;;IAIK,gBAAgB;IAChB,eAAe;EjCk4HvB;AACF;;Acv9HI;EmB+EA;IAUI,qBAAqB;IACrB,2BAA2B;EjCm4HjC;EiC94HG;IAcK,mBAAmB;EjCm4H3B;EiCj5HG;IAiBO,kBAAkB;EjCm4H5B;EiCp5HG;IAqBO,qB9ByiB6B;I8BxiB7B,oB9BwiB6B;EH01GvC;EiCx5HG;;IA6BK,iBAAiB;EjC+3HzB;EiC55HG;IAiCK,wBAAwB;IAGxB,gBAAgB;EjC43HxB;EiCh6HG;IAwCK,aAAa;EjC23HrB;AACF;;AiCz6HA;EAeQ,qBAAqB;EACrB,2BAA2B;AjC85HnC;;AiC96HA;;EASU,gBAAgB;EAChB,eAAe;AjC06HzB;;AiCp7HA;EAmBU,mBAAmB;AjCq6H7B;;AiCx7HA;EAsBY,kBAAkB;AjCs6H9B;;AiC57HA;EA0BY,qB9ByiB6B;E8BxiB7B,oB9BwiB6B;AH83GzC;;AiCj8HA;;EAkCU,iBAAiB;AjCo6H3B;;AiCt8HA;EAsCU,wBAAwB;EAGxB,gBAAgB;AjCk6H1B;;AiC38HA;EA6CU,aAAa;AjCk6HvB;;AiCr5HA;EAEI,yB9BjLW;AHwkIf;;AKzkIE;E4BqLI,yB9BpLS;AH4kIf;;AiC75HA;EAWM,yB9B1LS;AHglIf;;AKjlIE;E4B8LM,yB9B7LO;AHolIf;;AiCr6HA;EAkBQ,yB9BjMO;AHwlIf;;AiCz6HA;;;;EA0BM,yB9BzMS;AH+lIf;;AiCh7HA;EA+BI,yB9B9MW;E8B+MX,gC9B/MW;AHomIf;;AiCr7HA;EAoCI,wP9B6fsR;AHw5G1R;;AiCz7HA;EAwCI,yB9BvNW;AH4mIf;;AiC77HA;EA0CM,yB9BzNS;AHgnIf;;AKjnIE;E4B6NM,yB9B5NO;AHonIf;;AiCj5HA;EAEI,W9B/OW;AHkoIf;;AKznIE;E4ByOI,W9BlPS;AHsoIf;;AiCz5HA;EAWM,+B9BxPS;AH0oIf;;AKjoIE;E4BkPM,gC9B3PO;AH8oIf;;AiCj6HA;EAkBQ,gC9B/PO;AHkpIf;;AiCr6HA;;;;EA0BM,W9BvQS;AHypIf;;AiC56HA;EA+BI,+B9B5QW;E8B6QX,sC9B7QW;AH8pIf;;AiCj7HA;EAoCI,8P9BkcqR;AH+8GzR;;AiCr7HA;EAwCI,+B9BrRW;AHsqIf;;AiCz7HA;EA0CM,W9BvRS;AH0qIf;;AKjqIE;E4BiRM,W9B1RO;AH8qIf;;AkCjrIA;EACE,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,YAAY;EACZ,qBAAqB;EACrB,sB/BHa;E+BIb,2BAA2B;EAC3B,sC/BKa;EOZX,sBPqOgC;AHu9HpC;;AkC7rIA;EAYI,eAAe;EACf,cAAc;AlCqrIlB;;AkClsIA;ExBUI,+BP4NgC;EO3NhC,gCP2NgC;AHi+HpC;;AkCvsIA;ExBwBI,mCP8MgC;EO7MhC,kCP6MgC;AHs+HpC;;AkC/qIA;EAGE,cAAc;EACd,gB/B+wByC;AHi6G3C;;AkC5qIA;EACE,sB/BywBwC;AHs6G1C;;AkC5qIA;EACE,qBAA+B;EAC/B,gBAAgB;AlC+qIlB;;AkC5qIA;EACE,gBAAgB;AlC+qIlB;;AKttIE;E6B4CE,qBAAqB;AlC8qIzB;;AkChrIA;EAMI,oB/BwvBuC;AHs7G3C;;AkCtqIA;EACE,wB/B+uByC;E+B9uBzC,gBAAgB;EAEhB,qC/BvDa;E+BwDb,6C/BxDa;AHguIf;;AkC7qIA;ExB/DI,0DwBuE8E;AlCyqIlF;;AkCjrIA;EAaM,aAAa;AlCwqInB;;AkCnqIA;EACE,wB/B6tByC;E+B5tBzC,qC/BvEa;E+BwEb,0C/BxEa;AH8uIf;;AkCzqIA;ExBjFI,0DPmzBoF;AH28GxF;;AkC9pIA;EACE,uBAAiC;EACjC,uB/B4sBwC;E+B3sBxC,sBAAgC;EAChC,gBAAgB;AlCiqIlB;;AkC9pIA;EACE,uBAAiC;EACjC,sBAAgC;AlCiqIlC;;AkC7pIA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,gB/BssByC;AH09G3C;;AkC7pIA;EACE,WAAW;ExBvHT,kCPmzBoF;AHq+GxF;;AkC5pIA;EACE,WAAW;ExBpHT,2CP0yBoF;EOzyBpF,4CPyyBoF;AH2+GxF;;AkC7pIA;EACE,WAAW;ExB3GT,+CP4xBoF;EO3xBpF,8CP2xBoF;AHi/GxF;;AkC3pIA;EACE,aAAa;EACb,sBAAsB;AlC8pIxB;;AkChqIA;EAKI,mB/B6qBsD;AHk/G1D;;ActvII;EoBkFJ;IASI,mBAAmB;IACnB,mB/BwqBsD;I+BvqBtD,kB/BuqBsD;EHy/GxD;EkC3qIF;IAcM,aAAa;IAEb,YAAY;IACZ,sBAAsB;IACtB,kB/BgqBoD;I+B/pBpD,gBAAgB;IAChB,iB/B8pBoD;EHigHxD;AACF;;AkCtpIA;EACE,aAAa;EACb,sBAAsB;AlCypIxB;;AkC3pIA;EAOI,mB/B6oBsD;AH2gH1D;;Ac/wII;EoBgHJ;IAWI,mBAAmB;ElCypIrB;EkCpqIF;IAgBM,YAAY;IACZ,gBAAgB;ElCupIpB;EkCxqIF;IAoBQ,cAAc;IACd,cAAc;ElCupIpB;EkC5qIF;IxBvJI,0BwBkLoC;IxBjLpC,6BwBiLoC;ElCqpItC;EkChrIF;;IAgCY,0BAA0B;ElCopIpC;EkCprIF;;IAqCY,6BAA6B;ElCmpIvC;EkCxrIF;IxBzII,yBwBmLmC;IxBlLnC,4BwBkLmC;ElCkpIrC;EkC5rIF;;IA+CY,yBAAyB;ElCipInC;EkChsIF;;IAoDY,4BAA4B;ElCgpItC;AACF;;AkCpoIA;EAEI,sB/BokBsC;AHkkH1C;;AczzII;EoBiLJ;IAMI,uB/BglBiC;I+BhlBjC,oB/BglBiC;I+BhlBjC,e/BglBiC;I+B/kBjC,2B/BglBuC;I+BhlBvC,wB/BglBuC;I+BhlBvC,mB/BglBuC;I+B/kBvC,UAAU;IACV,SAAS;ElCuoIX;EkChpIF;IAYM,qBAAqB;IACrB,WAAW;ElCuoIf;AACF;;AkC9nIA;EAEI,gBAAgB;AlCgoIpB;;AkCloIA;ExB/PI,gBwBqQ4B;AlCgoIhC;;AkCtoIA;EAUQ,gBAAgB;ExBzQpB,gBwB0Q4B;AlCgoIhC;;AkC3oIA;EAgBM,gBAAgB;ExBxPlB,6BwByPiC;ExBxPjC,4BwBwPiC;AlCgoIrC;;AkCjpIA;ExBtPI,yBwB2Q8B;ExB1Q9B,0BwB0Q8B;AlCioIlC;;AkCtpIA;EAyBM,mB/BtD2B;AHurIjC;;AmC95IA;EACE,aAAa;EACb,eAAe;EACf,qBhC2gCsC;EgC1gCtC,mBhC6gCsC;EgC5gCtC,gBAAgB;EAChB,yBhCGgB;EOJd,sBPqOgC;AH8rIpC;;AmC95IA;EAGI,oBhCkgCqC;AH65GzC;;AmCl6IA;EAMM,qBAAqB;EACrB,qBhC8/BmC;EgC7/BnC,chCLY;EgCMZ,YhCmgCuC;AH65G7C;;AmCz6IA;EAcI,qBAAqB;AnC+5IzB;;AmC76IA;EAkBI,chCfc;AH86IlB;;AoC37IA;EACE,aAAa;E7BGb,eAAe;EACf,gBAAgB;EGAd,sBPqOgC;AHwtIpC;;AoC57IA;EACE,kBAAkB;EAClB,cAAc;EACd,uBjCqwBwC;EiCpwBxC,iBjC6N+B;EiC5N/B,iBjCwwBsC;EiCvwBtC,cjCwBe;EiCvBf,sBjCNa;EiCOb,yBjCJgB;AHm8IlB;;AoCv8IA;EAWI,UAAU;EACV,cjC2J8D;EiC1J9D,qBAAqB;EACrB,yBjCXc;EiCYd,qBjCXc;AH28IlB;;AoC/8IA;EAmBI,UAAU;EACV,UjCiwBiC;EiChwBjC,gDjCSa;AHu7IjB;;AoC57IA;EAGM,cAAc;E1BChB,+BPuMgC;EOtMhC,kCPsMgC;AHuvIpC;;AoCl8IA;E1BVI,gCPqNgC;EOpNhC,mCPoNgC;AH4vIpC;;AoCv8IA;EAcI,UAAU;EACV,WjCvCW;EiCwCX,yBjCXa;EiCYb,qBjCZa;AHy8IjB;;AoC98IA;EAqBI,cjCvCc;EiCwCd,oBAAoB;EAEpB,YAAY;EACZ,sBjCjDW;EiCkDX,qBjC/Cc;AH2+IlB;;AqCl/IE;EACE,uBlC8wBsC;ECnpBpC,kBAtCY;EiCnFd,gBlC8N6B;AHuxIjC;;AqCh/IM;E3BwBF,8BPwM+B;EOvM/B,iCPuM+B;AHqxInC;;AqCh/IM;E3BKF,+BPsN+B;EOrN/B,kCPqN+B;AH0xInC;;AqClgJE;EACE,uBlC4wBqC;ECjpBnC,mBAtCY;EiCnFd,gBlC+N6B;AHsyIjC;;AqChgJM;E3BwBF,8BPyM+B;EOxM/B,iCPwM+B;AHoyInC;;AqChgJM;E3BKF,+BPuN+B;EOtN/B,kCPsN+B;AHyyInC;;AsChhJA;EACE,qBAAqB;EACrB,qBnC24BsC;EC10BpC,cAAW;EkC/Db,gBnCmR+B;EmClR/B,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BRtB,sBPqOgC;EiBpO9B,qIjBqb6I;AHumInJ;;AoBvhJI;EkBNJ;IlBOM,gBAAgB;EpB2hJpB;AACF;;AKxhJE;EiCGI,qBAAqB;AtCyhJ3B;;AsCviJA;EAoBI,aAAa;AtCuhJjB;;AsClhJA;EACE,kBAAkB;EAClB,SAAS;AtCqhJX;;AsC9gJA;EACE,oBnCg3BsC;EmC/2BtC,mBnC+2BsC;EOn5BpC,oBPs5BqC;AHgqHzC;;AsCzgJE;ECjDA,WpCMa;EoCLb,yBpCkCe;AH4hJjB;;AKhjJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC8jJxC;;AuCjkJU;EAQJ,UAAU;EACV,+CpCuBW;AHsiJjB;;AsCxhJE;ECjDA,WpCMa;EoCLb,yBpCWgB;AHkkJlB;;AK/jJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC6kJxC;;AuChlJU;EAQJ,UAAU;EACV,iDpCAY;AH4kJlB;;AsCviJE;ECjDA,WpCMa;EoCLb,yBpCyCe;AHmjJjB;;AK9kJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC4lJxC;;AuC/lJU;EAQJ,UAAU;EACV,+CpC8BW;AH6jJjB;;AsCtjJE;ECjDA,WpCMa;EoCLb,yBpC2Ce;AHgkJjB;;AK7lJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC2mJxC;;AuC9mJU;EAQJ,UAAU;EACV,gDpCgCW;AH0kJjB;;AsCrkJE;ECjDA,cpCegB;EoCdhB,yBpCwCe;AHklJjB;;AK5mJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC0nJxC;;AuC7nJU;EAQJ,UAAU;EACV,+CpC6BW;AH4lJjB;;AsCplJE;ECjDA,WpCMa;EoCLb,yBpCsCe;AHmmJjB;;AK3nJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCyoJxC;;AuC5oJU;EAQJ,UAAU;EACV,+CpC2BW;AH6mJjB;;AsCnmJE;ECjDA,cpCegB;EoCdhB,yBpCMgB;AHkpJlB;;AK1oJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvCwpJxC;;AuC3pJU;EAQJ,UAAU;EACV,iDpCLY;AH4pJlB;;AsClnJE;ECjDA,WpCMa;EoCLb,yBpCagB;AH0pJlB;;AKzpJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCuqJxC;;AuC1qJU;EAQJ,UAAU;EACV,8CpCEY;AHoqJlB;;AwCnrJA;EACE,kBAAoD;EACpD,mBrC0yBsC;EqCxyBtC,yBrCKgB;EOJd,qBPsO+B;AH+8InC;;Ac9nJI;E0B5DJ;IAQI,kBrCoyBoC;EHm5HtC;AACF;;AwCprJA;EACE,gBAAgB;EAChB,eAAe;E9BTb,gB8BUsB;AxCurJ1B;;AyClsJA;EACE,kBAAkB;EAClB,wBtCm8ByC;EsCl8BzC,mBtCm8BsC;EsCl8BtC,6BAA6C;E/BH3C,sBPqOgC;AHo+IpC;;AyCjsJA;EAEE,cAAc;AzCmsJhB;;AyC/rJA;EACE,gBtCwQ+B;AH07IjC;;AyC1rJA;EACE,mBAAsD;AzC6rJxD;;AyC9rJA;EAKI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,wBtCq6BuC;EsCp6BvC,cAAc;AzC6rJlB;;AyCnrJE;EC9CA,cxBmFgE;EI9E9D,yBJ8E8D;EwBjFhE,qBxBiFgE;AlBopJlE;;A0CnuJE;EACE,yBAAqC;A1CsuJzC;;A0CnuJE;EACE,cAA0B;A1CsuJ9B;;AyCjsJE;EC9CA,cxBmFgE;EI9E9D,yBJ8E8D;EwBjFhE,qBxBiFgE;AlBkqJlE;;A0CjvJE;EACE,yBAAqC;A1CovJzC;;A0CjvJE;EACE,cAA0B;A1CovJ9B;;AyC/sJE;EC9CA,cxBmFgE;EI9E9D,yBJ8E8D;EwBjFhE,qBxBiFgE;AlBgrJlE;;A0C/vJE;EACE,yBAAqC;A1CkwJzC;;A0C/vJE;EACE,cAA0B;A1CkwJ9B;;AyC7tJE;EC9CA,cxBmFgE;EI9E9D,yBJ8E8D;EwBjFhE,qBxBiFgE;AlB8rJlE;;A0C7wJE;EACE,yBAAqC;A1CgxJzC;;A0C7wJE;EACE,cAA0B;A1CgxJ9B;;AyC3uJE;EC9CA,cxBmFgE;EI9E9D,yBJ8E8D;EwBjFhE,qBxBiFgE;AlB4sJlE;;A0C3xJE;EACE,yBAAqC;A1C8xJzC;;A0C3xJE;EACE,cAA0B;A1C8xJ9B;;AyCzvJE;EC9CA,cxBmFgE;EI9E9D,yBJ8E8D;EwBjFhE,qBxBiFgE;AlB0tJlE;;A0CzyJE;EACE,yBAAqC;A1C4yJzC;;A0CzyJE;EACE,cAA0B;A1C4yJ9B;;AyCvwJE;EC9CA,cxBmFgE;EI9E9D,yBJ8E8D;EwBjFhE,qBxBiFgE;AlBwuJlE;;A0CvzJE;EACE,yBAAqC;A1C0zJzC;;A0CvzJE;EACE,cAA0B;A1C0zJ9B;;AyCrxJE;EC9CA,cxBmFgE;EI9E9D,yBJ8E8D;EwBjFhE,qBxBiFgE;AlBsvJlE;;A0Cr0JE;EACE,yBAAqC;A1Cw0JzC;;A0Cr0JE;EACE,cAA0B;A1Cw0J9B;;A2Ch1JE;EACE;IAAO,2BAAuC;E3Co1JhD;E2Cn1JE;IAAK,wBAAwB;E3Cs1J/B;AACF;;A2Cz1JE;EACE;IAAO,2BAAuC;E3Co1JhD;E2Cn1JE;IAAK,wBAAwB;E3Cs1J/B;AACF;;A2Cn1JA;EACE,aAAa;EACb,YxC48BsC;EwC38BtC,gBAAgB;EvCoHZ,kBAtCY;EuC5EhB,yBxCJgB;EOJd,sBPqOgC;AH0nJpC;;A2Cl1JA;EACE,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,WxCfa;EwCgBb,kBAAkB;EAClB,mBAAmB;EACnB,yBxCWe;EiB9BX,2BjBw9B4C;AHi5HlD;;AoBp2JI;EuBOJ;IvBNM,gBAAgB;EpBw2JpB;AACF;;A2Cx1JA;ErBcE,qMAA6I;EqBZ7I,0BxCu7BsC;AHo6HxC;;A2Cv1JE;EACE,0DxCy7BkD;EwCz7BlD,kDxCy7BkD;AHi6HtD;;A2Cx1JI;EAHF;IAII,uBAAe;IAAf,eAAe;E3C41JnB;AACF;;A4Cp4JA;EACE,aAAa;EACb,uBAAuB;A5Cu4JzB;;A4Cp4JA;EACE,OAAO;A5Cu4JT;;A6Cz4JA;EACE,aAAa;EACb,sBAAsB;EAGtB,eAAe;EACf,gBAAgB;A7C04JlB;;A6Cj4JA;EACE,WAAW;EACX,c1CPgB;E0CQhB,mBAAmB;A7Co4JrB;;AK14JE;EwCUE,UAAU;EACV,c1Cbc;E0Ccd,qBAAqB;EACrB,yB1CrBc;AHy5JlB;;A6C94JA;EAcI,c1CjBc;E0CkBd,yB1CzBc;AH65JlB;;A6C33JA;EACE,kBAAkB;EAClB,cAAc;EACd,wB1C47ByC;E0C17BzC,mB1CuL+B;E0CrL/B,sB1C3Ca;E0C4Cb,sC1ClCa;AH85Jf;;A6Cp4JA;EnC7BI,+BP4NgC;EO3NhC,gCP2NgC;AH0sJpC;;A6Cz4JA;EAeI,gBAAgB;EnC9BhB,mCP8MgC;EO7MhC,kCP6MgC;AHgtJpC;;A6C/4JA;EAqBI,c1CnDc;E0CoDd,oBAAoB;EACpB,sB1C3DW;AHy7Jf;;A6Cr5JA;EA4BI,UAAU;EACV,W1CjEW;E0CkEX,yB1CrCa;E0CsCb,qB1CtCa;AHm6JjB;;A6Ch3JI;EACE,mBAAmB;A7Cm3JzB;;A6Cp3JI;EAII,kB1C4IyB;E0C3IzB,gBAAgB;A7Co3JxB;;A6Cz3JI;EnCpDA,+BPuMgC;EOtMhC,kCPsMgC;EO1LhC,0BmCgDwC;A7Cs3J5C;;A6C/3JI;EAaM,eAAe;EnC/ErB,gCPqNgC;EOpNhC,mCPoNgC;EO9KhC,4BmC0C0C;A7Cu3J9C;;Acj6JI;E+B2BA;IACE,mBAAmB;E7C04JvB;E6C34JE;IAII,kB1C4IyB;I0C3IzB,gBAAgB;E7C04JtB;E6C/4JE;InCpDA,+BPuMgC;IOtMhC,kCPsMgC;IO1LhC,0BmCgDwC;E7C24J1C;E6Cp5JE;IAaM,eAAe;InC/ErB,gCPqNgC;IOpNhC,mCPoNgC;IO9KhC,4BmC0C0C;E7C24J5C;AACF;;Act7JI;E+B2BA;IACE,mBAAmB;E7C+5JvB;E6Ch6JE;IAII,kB1C4IyB;I0C3IzB,gBAAgB;E7C+5JtB;E6Cp6JE;InCpDA,+BPuMgC;IOtMhC,kCPsMgC;IO1LhC,0BmCgDwC;E7Cg6J1C;E6Cz6JE;IAaM,eAAe;InC/ErB,gCPqNgC;IOpNhC,mCPoNgC;IO9KhC,4BmC0C0C;E7Cg6J5C;AACF;;Ac38JI;E+B2BA;IACE,mBAAmB;E7Co7JvB;E6Cr7JE;IAII,kB1C4IyB;I0C3IzB,gBAAgB;E7Co7JtB;E6Cz7JE;InCpDA,+BPuMgC;IOtMhC,kCPsMgC;IO1LhC,0BmCgDwC;E7Cq7J1C;E6C97JE;IAaM,eAAe;InC/ErB,gCPqNgC;IOpNhC,mCPoNgC;IO9KhC,4BmC0C0C;E7Cq7J5C;AACF;;Ach+JI;E+B2BA;IACE,mBAAmB;E7Cy8JvB;E6C18JE;IAII,kB1C4IyB;I0C3IzB,gBAAgB;E7Cy8JtB;E6C98JE;InCpDA,+BPuMgC;IOtMhC,kCPsMgC;IO1LhC,0BmCgDwC;E7C08J1C;E6Cn9JE;IAaM,eAAe;InC/ErB,gCPqNgC;IOpNhC,mCPoNgC;IO9KhC,4BmC0C0C;E7C08J5C;AACF;;A6C97JA;EAEI,eAAe;EACf,cAAc;EnCjHd,gBmCkHwB;A7Cg8J5B;;A6Cp8JA;EAOM,mB1C6G2B;AHo1JjC;;A6Cx8JA;EAaM,aAAa;A7C+7JnB;;A6C58JA;EAmBM,gBAAgB;EAChB,gBAAgB;A7C67JtB;;A8CjkKE;EACE,c5BgF8D;E4B/E9D,yB5B+E8D;AlBq/JlE;;AKzjKE;EyCPM,c5B2E0D;E4B1E1D,yBAAyC;A9CokKjD;;A8C3kKE;EAWM,W3CPO;E2CQP,yB5BqE0D;E4BpE1D,qB5BoE0D;AlBggKlE;;A8CjlKE;EACE,c5BgF8D;E4B/E9D,yB5B+E8D;AlBqgKlE;;AKzkKE;EyCPM,c5B2E0D;E4B1E1D,yBAAyC;A9ColKjD;;A8C3lKE;EAWM,W3CPO;E2CQP,yB5BqE0D;E4BpE1D,qB5BoE0D;AlBghKlE;;A8CjmKE;EACE,c5BgF8D;E4B/E9D,yB5B+E8D;AlBqhKlE;;AKzlKE;EyCPM,c5B2E0D;E4B1E1D,yBAAyC;A9ComKjD;;A8C3mKE;EAWM,W3CPO;E2CQP,yB5BqE0D;E4BpE1D,qB5BoE0D;AlBgiKlE;;A8CjnKE;EACE,c5BgF8D;E4B/E9D,yB5B+E8D;AlBqiKlE;;AKzmKE;EyCPM,c5B2E0D;E4B1E1D,yBAAyC;A9ConKjD;;A8C3nKE;EAWM,W3CPO;E2CQP,yB5BqE0D;E4BpE1D,qB5BoE0D;AlBgjKlE;;A8CjoKE;EACE,c5BgF8D;E4B/E9D,yB5B+E8D;AlBqjKlE;;AKznKE;EyCPM,c5B2E0D;E4B1E1D,yBAAyC;A9CooKjD;;A8C3oKE;EAWM,W3CPO;E2CQP,yB5BqE0D;E4BpE1D,qB5BoE0D;AlBgkKlE;;A8CjpKE;EACE,c5BgF8D;E4B/E9D,yB5B+E8D;AlBqkKlE;;AKzoKE;EyCPM,c5B2E0D;E4B1E1D,yBAAyC;A9CopKjD;;A8C3pKE;EAWM,W3CPO;E2CQP,yB5BqE0D;E4BpE1D,qB5BoE0D;AlBglKlE;;A8CjqKE;EACE,c5BgF8D;E4B/E9D,yB5B+E8D;AlBqlKlE;;AKzpKE;EyCPM,c5B2E0D;E4B1E1D,yBAAyC;A9CoqKjD;;A8C3qKE;EAWM,W3CPO;E2CQP,yB5BqE0D;E4BpE1D,qB5BoE0D;AlBgmKlE;;A8CjrKE;EACE,c5BgF8D;E4B/E9D,yB5B+E8D;AlBqmKlE;;AKzqKE;EyCPM,c5B2E0D;E4B1E1D,yBAAyC;A9CorKjD;;A8C3rKE;EAWM,W3CPO;E2CQP,yB5BqE0D;E4BpE1D,qB5BoE0D;AlBgnKlE;;A+CpsKA;EACE,YAAY;E3C8HR,iBAtCY;E2CtFhB,gB5CyR+B;E4CxR/B,cAAc;EACd,W5CYa;E4CXb,yB5CCa;E4CAb,WAAW;A/CusKb;;AKlsKE;E0CDE,W5CMW;E4CLX,qBAAqB;A/CusKzB;;AKnsKE;E0CCI,YAAY;A/CssKlB;;A+C3rKA;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS;EACT,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/C8rKlB;;A+CxrKA;EACE,oBAAoB;A/C2rKtB;;AgDluKA;EACE,gB7C43BuC;E6C33BvC,gBAAgB;E5C6HZ,mBAtCY;E4CpFhB,2C7CEa;E6CDb,4BAA4B;EAC5B,oC7C63BmD;E6C53BnD,gD7CSa;E6CRb,mCAA2B;EAA3B,2BAA2B;EAC3B,UAAU;EtCLR,sBPg4BsC;AH02I1C;;AgD/uKA;EAcI,sB7Cg3BsC;AHq3I1C;;AgDnvKA;EAkBI,UAAU;AhDquKd;;AgDvvKA;EAsBI,cAAc;EACd,UAAU;AhDquKd;;AgD5vKA;EA2BI,aAAa;AhDquKjB;;AgDjuKA;EACE,aAAa;EACb,mBAAmB;EACnB,wB7C41BwC;E6C31BxC,c7CtBgB;E6CuBhB,2C7C7Ba;E6C8Bb,4BAA4B;EAC5B,4C7Co2BoD;AHg4ItD;;AgDjuKA;EACE,gB7Co1BwC;AHg5I1C;;AiDxwKA;EAEE,gBAAgB;AjD0wKlB;;AiD5wKA;EAKI,kBAAkB;EAClB,gBAAgB;AjD2wKpB;;AiDtwKA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,a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pL3B,6BAAgE;EAChE,sBjD7CS;AHqoLf;;AoDnlLA;EACE,mBjD2zBuC;AH2xJzC;;AoDvlLA;EAII,+BAAsE;EACtE,ajDuzBqC;EiDtzBrC,YjDqzBoC;EiDpzBpC,gBAA2B;ApDulL/B;;AoD9lLA;EAUM,OAAO;EACP,oCAA2F;EAC3F,uCjDmzBiE;AHqyJvE;;AoDpmLA;EAgBM,SjD8J2B;EiD7J3B,oCAA2F;EAC3F,wBjDpES;AH4pLf;;AoDnlLA;EACE,kBjDoyBuC;AHkzJzC;;AoDvlLA;EAII,8BAAqE;ApDulLzE;;AoD3lLA;EAOM,MAAM;EACN,oCAA2F;EAC3F,wCjD+xBiE;AHyzJvE;;AoDjmLA;EAaM,QjD0I2B;EiDzI3B,oCAA2F;EAC3F,yBjDxFS;AHgrLf;;AoDvmLA;EAqBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,cAAc;EACd,WjD2wBoC;EiD1wBpC,oBAAsC;EACtC,WAAW;EACX,gCjD+vBuD;AHu1J3D;;AoDllLA;EACE,oBjDowBuC;AHi1JzC;;AoDtlLA;EAII,gCAAuE;EACvE,ajDgwBqC;EiD/vBrC,YjD8vBoC;EiD7vBpC,gBAA2B;ApDslL/B;;AoD7lLA;EAUM,QAAQ;EACR,oCjD0vBmC;EiDzvBnC,sCjD4vBiE;AH21JvE;;AoDnmLA;EAgBM,UjDuG2B;EiDtG3B,oCjDovBmC;EiDnvBnC,uBjD3HS;AHktLf;;AoDjkLA;EACE,uBjDqtBwC;EiDptBxC,gBAAgB;EhD3BZ,eAtCY;EgDoEhB,yBjD8sByD;EiD7sBzD,gCAAyE;E1ChJvE,0C0CiJyE;E1ChJzE,2C0CgJyE;ApDokL7E;;AoD3kLA;EAWI,aAAa;ApDokLjB;;AoDhkLA;EACE,uBjDssBwC;EiDrsBxC,cjDzJgB;AH4tLlB;;AqD/tLA;EACE,kBAAkB;ArDkuLpB;;AqD/tLA;EACE,mBAAmB;ArDkuLrB;;AqD/tLA;EACE,kBAAkB;EAClB,WAAW;EACX,gBAAgB;ArDkuLlB;;AsDzvLE;EACE,cAAc;EACd,WAAW;EACX,WAAW;AtD4vLf;;AqDpuLA;EACE,kBAAkB;EAClB,aAAa;EACb,WAAW;EACX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AAmC;AzD8+LvC;;AKp+LE;;;EoDLI,oCAAgD;AzD++LtD;;AyDr/LE;EACE,oCAAmC;AzDw/LvC;;AK9+LE;;;EoDLI,oCAAgD;AzDy/LtD;;AyD//LE;EACE,oCAAmC;AzDkgMvC;;AKx/LE;;;EoDLI,oCAAgD;AzDmgMtD;;AyDzgME;EACE,oCAAmC;AzD4gMvC;;AKlgME;;;EoDLI,oCAAgD;AzD6gMtD;;AyDnhME;EACE,oCAAmC;AzDshMvC;;AK5gME;;;EoDLI,oCAAgD;AzDuhMtD;;AyD7hME;EACE,oCAAmC;AzDgiMvC;;AKthME;;;EoDLI,oCAAgD;AzDiiMtD;;AyDviME;EACE,oCAAmC;AzD0iMvC;;AKhiME;;;EoDLI,oCAAgD;AzD2iMtD;;AyDjjME;EACE,oCAAmC;AzDojMvC;;AK1iME;;;EoDLI,oCAAgD;AzDqjMtD;;A0DpjMA;EACE,iCAAmC;A1DujMrC;;A0DpjMA;EACE,wCAAwC;A1DujM1C;;A2DlkMA;EAAkB,oCAAoD;A3DskMtE;;A2DrkMA;EAAkB,wCAAwD;A3DykM1E;;A2DxkMA;EAAkB,0CAA0D;A3D4kM5E;;A2D3kMA;EAAkB,2CAA2D;A3D+kM7E;;A2D9kMA;EAAkB,yCAAyD;A3DklM3E;;A2DhlMA;EAAmB,oBAAoB;A3DolMvC;;A2DnlMA;EAAmB,wBAAwB;A3DulM3C;;A2DtlMA;EAAmB,0BAA0B;A3D0lM7C;;A2DzlMA;EAAmB,2BAA2B;A3D6lM9C;;A2D5lMA;EAAmB,yBAAyB;A3DgmM5C;;A2D7lME;EACE,gCAA+B;A3DgmMnC;;A2DjmME;EACE,gCAA+B;A3DomMnC;;A2DrmME;EACE,gCAA+B;A3DwmMnC;;A2DzmME;EACE,gCAA+B;A3D4mMnC;;A2D7mME;EACE,gCAA+B;A3DgnMnC;;A2DjnME;EACE,gCAA+B;A3DonMnC;;A2DrnME;EACE,gCAA+B;A3DwnMnC;;A2DznME;EACE,gCAA+B;A3D4nMnC;;A2DxnMA;EACE,6BAA+B;A3D2nMjC;;A2DpnMA;EACE,gCAA2C;A3DunM7C;;A2DpnMA;EACE,iCAAwC;A3DunM1C;;A2DpnMA;EACE,0CAAiD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MI;EAAgC,sCAAsC;A9D26M1E;;A8D16MI;EAAgC,yCAAyC;A9D86M7E;;A8D56MI;EAA8B,0BAA0B;A9Dg7M5D;;A8D/6MI;EAA8B,4BAA4B;A9Dm7M9D;;A8Dl7MI;EAA8B,kCAAkC;A9Ds7MpE;;A8Dr7MI;EAA8B,yBAAyB;A9Dy7M3D;;A8Dx7MI;EAA8B,uBAAuB;A9D47MzD;;A8D37MI;EAA8B,uBAAuB;A9D+7MzD;;A8D97MI;EAA8B,yBAAyB;A9Dk8M3D;;A8Dj8MI;EAA8B,yBAAyB;A9Dq8M3D;;A8Dn8MI;EAAoC,sCAAsC;A9Du8M9E;;A8Dt8MI;EAAoC,oCAAoC;A9D08M5E;;A8Dz8MI;EAAoC,kCAAkC;A9D68M1E;;A8D58MI;EAAoC,yCAAyC;A9Dg9MjF;;A8D/8MI;EAAoC,wCAAwC;A9Dm9MhF;;A8Dj9MI;EAAiC,kCAAkC;A9Dq9MvE;;A8Dp9MI;EAAiC,gCAAgC;A9Dw9MrE;;A8Dv9MI;EAAiC,8BAA8B;A9D29MnE;;A8D19MI;EAAiC,gCAAgC;A9D89MrE;;A8D79MI;EAAiC,+BAA+B;A9Di+MpE;;A8D/9MI;EAAkC,oCAAoC;A9Dm+M1E;;A8Dl+MI;EAAkC,kCAAkC;A9Ds+MxE;;A8Dr+MI;EAAkC,gCAAgC;A9Dy+MtE;;A8Dx+MI;EAAkC,uCAAuC;A9D4+M7E;;A8D3+MI;EAAkC,sCAAsC;A9D++M5E;;A8D9+MI;EAAkC,iCAAiC;A9Dk/MvE;;A8Dh/MI;EAAgC,2BAA2B;A9Do/M/D;;A8Dn/MI;EAAgC,iCAAiC;A9Du/MrE;;A8Dt/MI;EAAgC,+BAA+B;A9D0/MnE;;A8Dz/MI;EAAgC,6BAA6B;A9D6/MjE;;A8D5/MI;EAAgC,+BAA+B;A9DggNnE;;A8D//MI;EAAgC,8BAA8B;A9DmgNlE;;Acv/MI;EgDlDA;IAAgC,8BAA8B;E9D8iNhE;E8D7iNE;IAAgC,iCAAiC;E9DgjNnE;E8D/iNE;IAAgC,sCAAsC;E9DkjNxE;E8DjjNE;IAAgC,yCAAyC;E9DojN3E;E8DljNE;IAA8B,0BAA0B;E9DqjN1D;E8DpjNE;IAA8B,4BAA4B;E9DujN5D;E8DtjNE;IAA8B,kCAAkC;E9DyjNlE;E8DxjNE;IAA8B,yBAAyB;E9D2jNzD;E8D1jNE;IAA8B,uBAAuB;E9D6jNvD;E8D5jNE;IAA8B,uBAAuB;E9D+jNvD;E8D9jNE;IAA8B,yBAAyB;E9DikNzD;E8DhkNE;IAA8B,yBAAyB;E9DmkNzD;E8DjkNE;IAAoC,sCAAsC;E9DokN5E;E8DnkNE;IAAoC,oCAAoC;E9DskN1E;E8DrkNE;IAAoC,kCAAkC;E9DwkNxE;E8DvkNE;IAAoC,yCAAyC;E9D0kN/E;E8DzkNE;IAAoC,wCAAwC;E9D4kN9E;E8D1kNE;IAAiC,kCAAkC;E9D6kNrE;E8D5kNE;IAAiC,gCAAgC;E9D+kNnE;E8D9kNE;IAAiC,8BAA8B;E9DilNjE;E8DhlNE;IAAiC,gCAAgC;E9DmlNnE;E8DllNE;IAAiC,+BAA+B;E9DqlNlE;E8DnlNE;IAAkC,oCAAoC;E9DslNxE;E8DrlNE;IAAkC,kCAAkC;E9DwlNtE;E8DvlNE;IAAkC,gCAAgC;E9D0lNpE;E8DzlNE;IAAkC,uCAAuC;E9D4lN3E;E8D3lNE;IAAkC,sCAAsC;E9D8lN1E;E8D7lNE;IAAkC,iCAAiC;E9DgmNrE;E8D9lNE;IAAgC,2BAA2B;E9DimN7D;E8DhmNE;IAAgC,iCAAiC;E9DmmNnE;E8DlmNE;IAAgC,+BAA+B;E9DqmNjE;E8DpmNE;IAAgC,6BAA6B;E9DumN/D;E8DtmNE;IAAgC,+BAA+B;E9DymNjE;E8DxmNE;IAAgC,8BAA8B;E9D2mNhE;AACF;;AchmNI;EgDlDA;IAAgC,8BAA8B;E9DupNhE;E8DtpNE;IAAgC,iCAAiC;E9DypNnE;E8DxpNE;IAAgC,sCAAsC;E9D2pNxE;E8D1pNE;IAAgC,yCAAyC;E9D6pN3E;E8D3pNE;IAA8B,0BAA0B;E9D8pN1D;E8D7pNE;IAA8B,4BAA4B;E9DgqN5D;E8D/pNE;IAA8B,kCAAkC;E9DkqNlE;E8DjqNE;IAA8B,yBAAyB;E9DoqNzD;E8DnqNE;IAA8B,uBAAuB;E9DsqNvD;E8DrqNE;IAA8B,uBAAuB;E9DwqNvD;E8DvqNE;IAA8B,yBAAyB;E9D0qNzD;E8DzqNE;IAA8B,yBAAyB;E9D4qNzD;E8D1qNE;IAAoC,sCAAsC;E9D6qN5E;E8D5qNE;IAAoC,oCAAoC;E9D+qN1E;E8D9qNE;IAAoC,kCAAkC;E9DirNxE;E8DhrNE;IAAoC,yCAAyC;E9DmrN/E;E8DlrNE;IAAoC,wCAAwC;E9DqrN9E;E8DnrNE;IAAiC,kCAAkC;E9DsrNrE;E8DrrNE;IAAiC,gCAAgC;E9DwrNnE;E8DvrNE;IAAiC,8BAA8B;E9D0rNjE;E8DzrNE;IAAiC,gCAAgC;E9D4rNnE;E8D3rNE;IAAiC,+BAA+B;E9D8rNlE;E8D5rNE;IAAkC,oCAAoC;E9D+rNxE;E8D9rNE;IAAkC,kCAAkC;E9DisNtE;E8DhsNE;IAAkC,gCAAgC;E9DmsNpE;E8DlsNE;IAAkC,uCAAuC;E9DqsN3E;E8DpsNE;IAAkC,sCAAsC;E9DusN1E;E8DtsNE;IAAkC,iCAAiC;E9DysNrE;E8DvsNE;IAAgC,2BAA2B;E9D0sN7D;E8DzsNE;IAAgC,iCAAiC;E9D4sNnE;E8D3sNE;IAAgC,+BAA+B;E9D8sNjE;E8D7sNE;IAAgC,6BAA6B;E9DgtN/D;E8D/sNE;IAAgC,+BAA+B;E9DktNjE;E8DjtNE;IAAgC,8BAA8B;E9DotNhE;AACF;;AczsNI;EgDlDA;IAAgC,8BAA8B;E9DgwNhE;E8D/vNE;IAAgC,iCAAiC;E9DkwNnE;E8DjwNE;IAAgC,sCAAsC;E9DowNxE;E8DnwNE;IAAgC,yCAAyC;E9DswN3E;E8DpwNE;IAA8B,0BAA0B;E9DuwN1D;E8DtwNE;IAA8B,4BAA4B;E9DywN5D;E8DxwNE;IAA8B,kCAAkC;E9D2wNlE;E8D1wNE;IAA8B,yBAAyB;E9D6wNzD;E8D5wNE;IAA8B,uBAAuB;E9D+wNvD;E8D9wNE;IAA8B,uBAAuB;E9DixNvD;E8DhxNE;IAA8B,yBAAyB;E9DmxNzD;E8DlxNE;IAA8B,yBAAyB;E9DqxNzD;E8DnxNE;IAAoC,sCAAsC;E9DsxN5E;E8DrxNE;IAAoC,oCAAoC;E9DwxN1E;E8DvxNE;IAAoC,kCAAkC;E9D0xNxE;E8DzxNE;IAAoC,yCAAyC;E9D4xN/E;E8D3xNE;IAAoC,wCAAwC;E9D8xN9E;E8D5xNE;IAAiC,kCAAkC;E9D+xNrE;E8D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O9C;;AuEzsOQ;;EAEE,gCAAwC;AvE4sOlD;;AuE1sOQ;;EAEE,iCAA0C;AvE6sOpD;;AuE3sOQ;;EAEE,+BAAsC;AvE8sOhD;;AuE7tOQ;EAAgC,yBAA4B;AvEiuOpE;;AuEhuOQ;;EAEE,6BAAoC;AvEmuO9C;;AuEjuOQ;;EAEE,+BAAwC;AvEouOlD;;AuEluOQ;;EAEE,gCAA0C;AvEquOpD;;AuEnuOQ;;EAEE,8BAAsC;AvEsuOhD;;AuErvOQ;EAAgC,uBAA4B;AvEyvOpE;;AuExvOQ;;EAEE,2BAAoC;AvE2vO9C;;AuEzvOQ;;EAEE,6BAAwC;AvE4vOlD;;AuE1vOQ;;EAEE,8BAA0C;AvE6vOpD;;AuE3vOQ;;EAEE,4BAAsC;AvE8vOhD;;AuE7wOQ;EAAgC,yBAA4B;AvEixOpE;;AuEhxOQ;;EAEE,6BAAoC;AvEmxO9C;;AuEjxOQ;;EAEE,+BAAwC;AvEoxOlD;;AuElxOQ;;EAEE,gCAA0C;AvEqxOpD;;AuEnxOQ;;EAEE,8BAAsC;AvEsxOhD;;AuEryOQ;EAAgC,uBAA4B;AvEyyOpE;;AuExyOQ;;EAEE,2BAAoC;AvE2yO9C;;AuEzyOQ;;EAEE,6BAAwC;AvE4yOlD;;AuE1yOQ;;EAEE,8BAA0C;AvE6yOpD;;AuE3yOQ;;EAEE,4BAAsC;AvE8yOhD;;AuE7zOQ;EAAgC,qBAA4B;AvEi0OpE;;AuEh0OQ;;EAEE,yBAAoC;AvEm0O9C;;AuEj0OQ;;EAEE,2BAAwC;AvEo0OlD;;AuEl0OQ;;EAEE,4BAA0C;AvEq0OpD;;AuEn0OQ;;EAEE,0BAAsC;AvEs0OhD;;AuEr1OQ;EAAgC,2BAA4B;AvEy1OpE;;AuEx1OQ;;EAEE,+BAAoC;AvE21O9C;;AuEz1OQ;;EAEE,iCAAwC;AvE41OlD;;AuE11OQ;;EAEE,kCAA0C;AvE61OpD;;AuE31OQ;;EAEE,gCAAsC;AvE81OhD;;AuE72OQ;EAAgC,0BAA4B;AvEi3OpE;;AuEh3OQ;;EAEE,8BAAoC;AvEm3O9C;;AuEj3OQ;;EAEE,gCAAwC;AvEo3OlD;;AuEl3OQ;;EAEE,iCAA0C;AvEq3OpD;;AuEn3OQ;;EAEE,+BAAsC;AvEs3OhD;;AuEr4OQ;EAAgC,wBAA4B;AvEy4OpE;;AuEx4OQ;;EAEE,4BAAoC;AvE24O9C;;AuEz4OQ;;EAEE,8BAAwC;AvE44OlD;;AuE14OQ;;EAEE,+BAA0C;AvE64OpD;;AuE34OQ;;EAEE,6BAAsC;AvE84OhD;;AuE75OQ;EAAgC,0BAA4B;AvEi6OpE;;AuEh6OQ;;EAEE,8BAAoC;AvEm6O9C;;AuEj6OQ;;EAEE,gCAAwC;AvEo6OlD;;AuEl6OQ;;EAEE,iCAA0C;AvEq6OpD;;AuEn6OQ;;EAEE,+BAAsC;AvEs6OhD;;AuEr7OQ;EAAgC,wBAA4B;AvEy7OpE;;AuEx7OQ;;EAEE,4BAAoC;AvE27O9C;;AuEz7OQ;;EAEE,8BAAwC;AvE47OlD;;AuE17OQ;;EAEE,+BAA0C;AvE67OpD;;AuE37OQ;;EAEE,6BAAsC;AvE87OhD;;AuEt7OQ;EAAwB,2BAA2B;AvE07O3D;;AuEz7OQ;;EAEE,+BAA+B;AvE47OzC;;AuE17OQ;;EAEE,iCAAiC;AvE67O3C;;AuE37OQ;;EAEE,kCAAkC;AvE87O5C;;AuE57OQ;;EAEE,gCAAgC;AvE+7O1C;;AuE98OQ;EAAwB,0BAA2B;AvEk9O3D;;AuEj9OQ;;EAEE,8BAA+B;AvEo9OzC;;AuEl9OQ;;EAEE,gCAAiC;AvEq9O3C;;AuEn9OQ;;EAEE,iCAAkC;AvEs9O5C;;AuEp9OQ;;EAEE,+BAAgC;AvEu9O1C;;AuEt+OQ;EAAwB,wBAA2B;AvE0+O3D;;AuEz+OQ;;EAEE,4BAA+B;AvE4+OzC;;AuE1+OQ;;EAEE,8BAAiC;AvE6+O3C;;AuE3+OQ;;EAEE,+BAAkC;AvE8+O5C;;AuE5+OQ;;EAEE,6BAAgC;AvE++O1C;;AuE9/OQ;EAAwB,0BAA2B;AvEkgP3D;;AuEjgPQ;;EAEE,8BAA+B;AvEogPzC;;AuElgPQ;;EAEE,gCAAiC;AvEqgP3C;;AuEngPQ;;EAEE,iCAAkC;AvEsgP5C;;AuEpgPQ;;EAEE,+BAAgC;AvEugP1C;;AuEthPQ;EAAwB,wBAA2B;AvE0hP3D;;AuEzhPQ;;EAEE,4BAA+B;AvE4hPzC;;AuE1hPQ;;EAEE,8BAAiC;AvE6hP3C;;AuE3hPQ;;EAEE,+BAAkC;AvE8hP5C;;AuE5hPQ;;EAEE,6BAAgC;AvE+hP1C;;AuEzhPI;EAAmB,uBAAuB;AvE6hP9C;;AuE5hPI;;EAEE,2BAA2B;AvE+hPjC;;AuE7hPI;;EAEE,6BAA6B;AvEgiPnC;;AuE9hPI;;EAEE,8BAA8B;AvEiiPpC;;AuE/hPI;;EAEE,4BAA4B;AvEkiPlC;;Ac3iPI;EyDlDI;IAAgC,oBAA4B;EvEkmPlE;EuEjmPM;;IAEE,wBAAoC;EvEmmP5C;EuEjmPM;;IAEE,0BAAwC;EvEmmPhD;EuEjmPM;;IAEE,2BAA0C;EvEmmPlD;EuEjmPM;;IAEE,yBAAsC;EvEmmP9C;EuElnPM;IAAgC,0BAA4B;EvEqnPlE;EuEpnPM;;IAEE,8BAAoC;EvEsnP5C;EuEpnPM;;IAEE,gCAAwC;EvEsnPhD;EuEpnPM;;IAEE,iCAA0C;EvEsnPlD;EuEpnPM;;IAEE,+BAAsC;EvEsnP9C;EuEroPM;IAAgC,yBAA4B;EvEwoPlE;EuEvoPM;;IAEE,6BAAoC;EvEyoP5C;EuEvoPM;;IAEE,+BAAwC;EvEyoPhD;EuEvoPM;;IAEE,gCAA0C;EvEyoPlD;EuEvoPM;;IAEE,8BAAsC;EvEyoP9C;EuExpPM;IAAgC,uBAA4B;EvE2pPlE;EuE1pPM;;IAEE,2BAAoC;EvE4pP5C;EuE1pPM;;IAEE,6BAAwC;EvE4pPhD;EuE1pPM;;IAEE,8BAA0C;EvE4pPlD;EuE1pPM;;IAEE,4BAAsC;EvE4pP9C;EuE3qPM;IAAgC,yBAA4B;EvE8qPlE;EuE7qPM;;IAEE,6BAAoC;EvE+qP5C;EuE7qPM;;IAEE,+BAAwC;EvE+qPhD;EuE7qPM;;IAEE,gCAA0C;EvE+qPlD;EuE7qPM;;IAEE,8BAAsC;EvE+qP9C;EuE9rPM;IAAgC,uBAA4B;EvEisPlE;EuEhsPM;;IAEE,2BAAoC;EvEksP5C;EuEhsPM;;IAEE,6BAAwC;EvEksPhD;EuEhsPM;;IAEE,8BAA0C;EvEksPlD;EuEhsPM;;IAEE,4BAAsC;EvEksP9C;EuEjtPM;IAAgC,qBAA4B;EvEotPlE;EuEntPM;;IAEE,yBAAoC;EvEqtP5C;EuEntPM;;IAEE,2BAAwC;EvEqtPhD;EuEntPM;;IAEE,4BAA0C;EvEqtPlD;EuEntPM;;IAEE,0BAAsC;EvEqtP9C;EuEpuPM;IAAgC,2BAA4B;EvEuuPlE;EuEtuPM;;IAEE,+BAAoC;EvEwuP5C;EuEtuPM;;IAEE,iCAAwC;EvEwuPhD;EuEtuPM;;IAEE,kCAA0C;EvEwuPlD;EuEtuPM;;IAEE,gCAAsC;EvEwuP9C;EuEvvPM;IAAgC,0BAA4B;EvE0vPlE;EuEzvPM;;IAEE,8BAAoC;EvE2vP5C;EuEzvPM;;IAEE,gCAAwC;EvE2vPhD;EuEzvPM;;IAEE,iCAA0C;EvE2vPlD;EuEzvPM;;IAEE,+BAAsC;EvE2vP9C;EuE1wPM;IAAgC,wBAA4B;EvE6wPlE;EuE5wPM;;IAEE,4BAAoC;EvE8wP5C;EuE5wPM;;IAEE,8BAAwC;EvE8wPhD;EuE5wPM;;IAEE,+BAA0C;EvE8wPlD;EuE5wPM;;IAEE,6BAAsC;EvE8wP9C;EuE7xPM;IAAgC,0BAA4B;EvEgyPlE;EuE/xPM;;IAEE,8BAAoC;EvEiyP5C;EuE/xPM;;IAEE,gCAAwC;EvEiyPhD;EuE/xPM;;IAEE,iCAA0C;EvEiyPlD;EuE/xPM;;IAEE,+BAAsC;EvEiyP9C;EuEhzPM;IAAgC,wBAA4B;EvEmzPlE;EuElzPM;;IAEE,4BAAoC;EvEozP5C;EuElzPM;;IAEE,8BAAwC;EvEozPhD;EuElzPM;;IAEE,+BAA0C;EvEozPlD;EuElzPM;;IAEE,6BAAsC;EvEozP9C;EuE5yPM;IAAwB,2BAA2B;EvE+yPzD;EuE9yPM;;IAEE,+BAA+B;EvEgzPvC;EuE9yPM;;IAEE,iCAAiC;EvEgzPzC;EuE9yPM;;IAEE,kCAAkC;EvEgzP1C;EuE9yPM;;IAEE,gCAAgC;EvEgzPxC;EuE/zPM;IAAwB,0BAA2B;EvEk0PzD;EuEj0PM;;IAEE,8BAA+B;EvEm0PvC;EuEj0PM;;IAEE,gCAAiC;EvEm0PzC;EuEj0PM;;IAEE,iCAAkC;EvEm0P1C;EuEj0PM;;IAEE,+BAAgC;EvEm0PxC;EuEl1PM;IAAwB,wBAA2B;EvEq1PzD;EuEp1PM;;IAEE,4BAA+B;EvEs1PvC;EuEp1PM;;IAEE,8BAAiC;EvEs1PzC;EuEp1PM;;IAEE,+BAAkC;EvEs1P1C;EuEp1PM;;IAEE,6BAAgC;EvEs1PxC;EuEr2PM;IAAwB,0BAA2B;EvEw2PzD;EuEv2PM;;IAEE,8BAA+B;EvEy2PvC;EuEv2PM;;IAEE,gCAAiC;EvEy2PzC;EuEv2PM;;IAEE,iCAAkC;EvEy2P1C;EuEv2PM;;IAEE,+BAAgC;EvEy2PxC;EuEx3PM;IAAwB,wBAA2B;EvE23PzD;EuE13PM;;IAEE,4BAA+B;EvE43PvC;EuE13PM;;IAEE,8BAAiC;EvE43PzC;EuE13PM;;IAEE,+BAAkC;EvE43P1C;EuE13PM;;IAEE,6BAAgC;EvE43PxC;EuEt3PE;IAAmB,uBAAuB;EvEy3P5C;EuEx3PE;;IAEE,2BAA2B;EvE03P/B;EuEx3PE;;IAEE,6BAA6B;EvE03PjC;EuEx3PE;;IAEE,8BAA8B;EvE03PlC;EuEx3PE;;IAEE,4BAA4B;EvE03PhC;AACF;;Acp4PI;EyDlDI;IAAgC,oBAA4B;EvE27PlE;EuE17PM;;IAEE,wBAAoC;EvE47P5C;EuE17PM;;IAEE,0BAAwC;EvE47PhD;EuE17PM;;IAEE,2BAA0C;EvE47PlD;EuE17PM;;IAEE,yBAAsC;EvE47P9C;EuE38PM;IAAgC,0BAA4B;EvE88PlE;EuE78PM;;IAEE,8BAAoC;EvE+8P5C;EuE78PM;;IAEE,gCAAwC;EvE+8PhD;EuE78PM;;IAEE,iCAA0C;EvE+8PlD;EuE78PM;;IAEE,+BAAsC;EvE+8P9C;EuE99PM;IAAgC,yBAA4B;EvEi+PlE;EuEh+PM;;IAEE,6BAAoC;EvEk+P5C;EuEh+PM;;IAEE,+BAAwC;EvEk+PhD;EuEh+PM;;IAEE,gCAA0C;EvEk+PlD;EuEh+PM;;IAEE,8BAAsC;EvEk+P9C;EuEj/PM;IAAgC,uBAA4B;EvEo/PlE;EuEn/PM;;IAEE,2BAAoC;EvEq/P5C;EuEn/PM;;IAEE,6BAAwC;EvEq/PhD;EuEn/PM;;IAEE,8BAA0C;EvEq/PlD;EuEn/PM;;IAEE,4BAAsC;EvEq/P9C;EuEpgQM;IAAgC,yBAA4B;EvEugQlE;EuEtgQM;;IAEE,6BAAoC;EvEwgQ5C;EuEtgQM;;IAEE,+BAAwC;EvEwgQhD;EuEtgQM;;IAEE,gCAA0C;EvEwgQlD;EuEtgQM;;IAEE,8BAAsC;EvEwgQ9C;EuEvhQM;IAAgC,uBAA4B;EvE0hQlE;EuEzhQM;;IAEE,2BAAoC;EvE2hQ5C;EuEzhQM;;IAEE,6BAAwC;EvE2hQhD;EuEzhQM;;IAEE,8BAA0C;EvE2hQlD;EuEzhQM;;IAEE,4BAAsC;EvE2hQ9C;EuE1iQM;IAAgC,qBAA4B;EvE6iQlE;EuE5iQM;;IAEE,yBAAoC;EvE8iQ5C;EuE5iQM;;IAEE,2BAAwC;EvE8iQhD;EuE5iQM;;IAEE,4BAA0C;EvE8iQlD;EuE5iQM;;IAEE,0BAAsC;EvE8iQ9C;EuE7jQM;IAAgC,2BAA4B;EvEgkQlE;EuE/jQM;;IAEE,+BAAoC;EvEikQ5C;EuE/jQM;;IAEE,iCAAwC;EvEikQhD;EuE/jQM;;IAEE,kCAA0C;EvEikQlD;EuE/jQM;;IAEE,gCAAsC;EvEikQ9C;EuEhlQM;IAAgC,0BAA4B;EvEmlQlE;EuEllQM;;IAEE,8BAAoC;EvEolQ5C;EuEllQM;;IAEE,gCAAwC;EvEolQhD;EuEllQM;;IAEE,iCAA0C;EvEolQlD;EuEllQM;;IAEE,+BAAsC;EvEolQ9C;EuEnmQM;IAAgC,wBAA4B;EvEsmQlE;EuErmQM;;IAEE,4BAAoC;EvEumQ5C;EuErmQM;;IAEE,8BAAwC;EvEumQhD;EuErmQM;;IAEE,+BAA0C;EvEumQlD;EuErmQM;;IAEE,6BAAsC;EvEumQ9C;EuEtnQM;IAAgC,0BAA4B;EvEynQlE;EuExnQM;;IAEE,8BAAoC;EvE0nQ5C;EuExnQM;;IAEE,gCAAwC;EvE0nQhD;EuExnQM;;IAEE,iCAA0C;EvE0nQlD;EuExnQM;;IAEE,+BAAsC;EvE0nQ9C;EuEzoQM;IAAgC,wBAA4B;EvE4oQlE;EuE3oQM;;IAEE,4BAAoC;EvE6oQ5C;EuE3oQM;;IAEE,8BAAwC;EvE6oQhD;EuE3oQM;;IAEE,+BAA0C;EvE6oQlD;EuE3oQM;;IAEE,6BAAsC;EvE6oQ9C;EuEroQM;IAAwB,2BAA2B;EvEwoQzD;EuEvoQM;;IAEE,+BAA+B;EvEyoQvC;EuEvoQM;;IAEE,iCAAiC;EvEyoQzC;EuEvoQM;;IAEE,kCAAkC;EvEyoQ1C;EuEvoQM;;IAEE,gCAAgC;EvEyoQxC;EuExpQM;IAAwB,0BAA2B;EvE2pQzD;EuE1pQM;;IAEE,8BAA+B;EvE4pQvC;EuE1pQM;;IAEE,gCAAiC;EvE4pQzC;EuE1pQM;;IAEE,iCAAkC;EvE4pQ1C;EuE1pQM;;IAEE,+BAAgC;EvE4pQxC;EuE3qQM;IAAwB,wBAA2B;EvE8qQzD;EuE7qQM;;IAEE,4BAA+B;EvE+qQvC;EuE7qQM;;IAEE,8BAAiC;EvE+qQzC;EuE7qQM;;IAEE,+BAAkC;EvE+qQ1C;EuE7qQM;;IAEE,6BAAgC;EvE+qQxC;EuE9rQM;IAAwB,0BAA2B;EvEisQzD;EuEhsQM;;IAEE,8BAA+B;EvEksQvC;EuEhsQM;;IAEE,gCAAiC;EvEksQzC;EuEhsQM;;IAEE,iCAAkC;EvEksQ1C;EuEhsQM;;IAEE,+BAAgC;EvEksQxC;EuEjtQM;IAAwB,wBAA2B;EvEotQzD;EuEntQM;;IAEE,4BAA+B;EvEqtQvC;EuEntQM;;IAEE,8BAAiC;EvEqtQzC;EuEntQM;;IAEE,+BAAkC;EvEqtQ1C;EuEntQM;;IAEE,6BAAgC;EvEqtQxC;EuE/sQE;IAAmB,uBAAuB;EvEktQ5C;EuEjtQE;;IAEE,2BAA2B;EvEmtQ/B;EuEjtQE;;IAEE,6BAA6B;EvEmtQjC;EuEjtQE;;IAEE,8BAA8B;EvEmtQlC;EuEjtQE;;IAEE,4BAA4B;EvEmtQhC;AACF;;Ac7tQI;EyDlDI;IAAgC,oBAA4B;EvEoxQlE;EuEnxQM;;IAEE,wBAAoC;EvEqxQ5C;EuEnxQM;;IAEE,0BAAwC;EvEqxQhD;EuEnxQM;;IAEE,2BAA0C;EvEqxQlD;EuEnxQM;;IAEE,yBAAsC;EvEqxQ9C;EuEpyQM;IAAgC,0BAA4B;EvEuyQlE;EuEtyQM;;IAEE,8BAAoC;EvEwyQ5C;EuEtyQM;;IAEE,gCAAwC;EvEwyQhD;EuEtyQM;;IAEE,iCAA0C;EvEwyQlD;EuEtyQM;;IAEE,+BAAsC;EvEwyQ9C;EuEvzQM;IAAgC,yBAA4B;EvE0zQlE;EuEzzQM;;IAEE,6BAAoC;EvE2zQ5C;EuEzzQM;;IAEE,+BAAwC;EvE2zQhD;EuEzzQM;;IAEE,gCAA0C;EvE2zQlD;EuEzzQM;;IAEE,8BAAsC;EvE2zQ9C;EuE10QM;IAAgC,uBAA4B;EvE60QlE;EuE50QM;;IAEE,2BAAoC;EvE80Q5C;EuE50QM;;IAEE,6BAAwC;EvE80QhD;EuE50QM;;IAEE,8BAA0C;EvE80QlD;EuE50QM;;IAEE,4BAAsC;EvE80Q9C;EuE71QM;IAAgC,yBAA4B;EvEg2QlE;EuE/1QM;;IAEE,6BAAoC;EvEi2Q5C;EuE/1QM;;IAEE,+BAAwC;EvEi2QhD;EuE/1QM;;IAEE,gCAA0C;EvEi2QlD;EuE/1QM;;IAEE,8BAAsC;EvEi2Q9C;EuEh3QM;IAAgC,uBAA4B;EvEm3QlE;EuEl3QM;;IAEE,2BAAoC;EvEo3Q5C;EuEl3QM;;IAEE,6BAAwC;EvEo3QhD;EuEl3QM;;IAEE,8BAA0C;EvEo3QlD;EuEl3QM;;IAEE,4BAAsC;EvEo3Q9C;EuEn4QM;IAAgC,qBAA4B;EvEs4QlE;EuEr4QM;;IAEE,yBAAoC;EvEu4Q5C;EuEr4QM;;IAEE,2BAAwC;EvEu4QhD;EuEr4QM;;IAEE,4BAA0C;EvEu4QlD;EuEr4QM;;IAEE,0BAAsC;EvEu4Q9C;EuEt5QM;IAAgC,2BAA4B;EvEy5QlE;EuEx5QM;;IAEE,+BAAoC;EvE05Q5C;EuEx5QM;;IAEE,iCAAwC;EvE05QhD;EuEx5QM;;IAEE,kCAA0C;EvE05QlD;EuEx5QM;;IAEE,gCAAsC;EvE05Q9C;EuEz6QM;IAAgC,0BAA4B;EvE46QlE;EuE36QM;;IAEE,8BAAoC;EvE66Q5C;EuE36QM;;IAEE,gCAAwC;EvE66QhD;EuE36QM;;IAEE,iCAA0C;EvE66QlD;EuE36QM;;IAEE,+BAAsC;EvE66Q9C;EuE57QM;IAAgC,wBAA4B;EvE+7QlE;EuE97QM;;IAEE,4BAAoC;EvEg8Q5C;EuE97QM;;IAEE,8BAAwC;EvEg8QhD;EuE97QM;;IAEE,+BAA0C;EvEg8QlD;EuE97QM;;IAEE,6BAAsC;EvEg8Q9C;EuE/8QM;IAAgC,0BAA4B;EvEk9QlE;EuEj9QM;;IAEE,8BAAoC;EvEm9Q5C;EuEj9QM;;IAEE,gCAAwC;EvEm9QhD;EuEj9QM;;IAEE,iCAA0C;EvEm9QlD;EuEj9QM;;IAEE,+BAAsC;EvEm9Q9C;EuEl+QM;IAAgC,wBAA4B;EvEq+QlE;EuEp+QM;;IAEE,4BAAoC;EvEs+Q5C;EuEp+QM;;IAEE,8BAAwC;EvEs+QhD;EuEp+QM;;IAEE,+BAA0C;EvEs+QlD;EuEp+QM;;IAEE,6BAAsC;EvEs+Q9C;EuE99QM;IAAwB,2BAA2B;EvEi+QzD;EuEh+QM;;IAEE,+BAA+B;EvEk+QvC;EuEh+QM;;IAEE,iCAAiC;EvEk+QzC;EuEh+QM;;IAEE,kCAAkC;EvEk+Q1C;EuEh+QM;;IAEE,gCAAgC;EvEk+QxC;EuEj/QM;IAAwB,0BAA2B;EvEo/QzD;EuEn/QM;;IAEE,8BAA+B;EvEq/QvC;EuEn/QM;;IAEE,gCAAiC;EvEq/QzC;EuEn/QM;;IAEE,iCAAkC;EvEq/Q1C;EuEn/QM;;IAEE,+BAAgC;EvEq/QxC;EuEpgRM;IAAwB,wBAA2B;EvEugRzD;EuEtgRM;;IAEE,4BAA+B;EvEwgRvC;EuEtgRM;;IAEE,8BAAiC;EvEwgRzC;EuEtgRM;;IAEE,+BAAkC;EvEwgR1C;EuEtgRM;;IAEE,6BAAgC;EvEwgRxC;EuEvhRM;IAAwB,0BAA2B;EvE0hRzD;EuEzhRM;;IAEE,8BAA+B;EvE2hRvC;EuEzhRM;;IAEE,gCAAiC;EvE2hRzC;EuEzhRM;;IAEE,iCAAkC;EvE2hR1C;EuEzhRM;;IAEE,+BAAgC;EvE2hRxC;EuE1iRM;IAAwB,wBAA2B;EvE6iRzD;EuE5iRM;;IAEE,4BAA+B;EvE8iRvC;EuE5iRM;;IAEE,8BAAiC;EvE8iRzC;EuE5iRM;;IAEE,+BAAkC;EvE8iR1C;EuE5iRM;;IAEE,6BAAgC;EvE8iRxC;EuExiRE;IAAmB,uBAAuB;EvE2iR5C;EuE1iRE;;IAEE,2BAA2B;EvE4iR/B;EuE1iRE;;IAEE,6BAA6B;EvE4iRjC;EuE1iRE;;IAEE,8BAA8B;EvE4iRlC;EuE1iRE;;IAEE,4BAA4B;EvE4iRhC;AACF;;ActjRI;EyDlDI;IAAgC,oBAA4B;EvE6mRlE;EuE5mRM;;IAEE,wBAAoC;EvE8mR5C;EuE5mRM;;IAEE,0BAAwC;EvE8mRhD;EuE5mRM;;IAEE,2BAA0C;EvE8mRlD;EuE5mRM;;IAEE,yBAAsC;EvE8mR9C;EuE7nRM;IAAgC,0BAA4B;EvEgoRlE;EuE/nRM;;IAEE,8BAAoC;EvEioR5C;EuE/nRM;;IAEE,gCAAwC;EvEioRhD;EuE/nRM;;IAEE,iCAA0C;EvEioRlD;EuE/nRM;;IAEE,+BAAsC;EvEioR9C;EuEhpRM;IAAgC,yBAA4B;EvEmpRlE;EuElpRM;;IAEE,6BAAoC;EvEopR5C;EuElpRM;;IAEE,+BAAwC;EvEopRhD;EuElpRM;;IAEE,gCAA0C;EvEopRlD;EuElpRM;;IAEE,8BAAsC;EvEopR9C;EuEnqRM;IAAgC,uBAA4B;EvEsqRlE;EuErqRM;;IAEE,2BAAoC;EvEuqR5C;EuErqRM;;IAEE,6BAAwC;EvEuqRhD;EuErqRM;;IAEE,8BAA0C;EvEuqRlD;EuErqRM;;IAEE,4BAAsC;EvEuqR9C;EuEtrRM;IAAgC,yBAA4B;EvEyrRlE;EuExrRM;;IAEE,6BAAoC;EvE0rR5C;EuExrRM;;IAEE,+BAAwC;EvE0rRhD;EuExrRM;;IAEE,gCAA0C;EvE0rRlD;EuExrRM;;IAEE,8BAAsC;EvE0rR9C;EuEzsRM;IAAgC,uBAA4B;EvE4sRlE;EuE3sRM;;IAEE,2BAAoC;EvE6sR5C;EuE3sRM;;IAEE,6BAAwC;EvE6sRhD;EuE3sRM;;IAEE,8BAA0C;EvE6sRlD;EuE3sRM;;IAEE,4BAAsC;EvE6sR9C;EuE5tRM;IAAgC,qBAA4B;EvE+tRlE;EuE9tRM;;IAEE,yBAAoC;EvEguR5C;EuE9tRM;;IAEE,2BAAwC;EvEguRhD;EuE9tRM;;IAEE,4BAA0C;EvEguRlD;EuE9tRM;;IAEE,0BAAsC;EvEguR9C;EuE/uRM;IAAgC,2BAA4B;EvEkvRlE;EuEjvRM;;IAEE,+BAAoC;EvEmvR5C;EuEjvRM;;IAEE,iCAAwC;EvEmvRhD;EuEjvRM;;IAEE,kCAA0C;EvEmvRlD;EuEjvRM;;IAEE,gCAAsC;EvEmvR9C;EuElwRM;IAAgC,0BAA4B;EvEqwRlE;EuEpwRM;;IAEE,8BAAoC;EvEswR5C;EuEpwRM;;IAEE,gCAAwC;EvEswRhD;EuEpwRM;;IAEE,iCAA0C;EvEswRlD;EuEpwRM;;IAEE,+BAAsC;EvEswR9C;EuErxRM;IAAgC,wBAA4B;EvEwxRlE;EuEvxRM;;IAEE,4BAAoC;EvEyxR5C;EuEvxRM;;IAEE,8BAAwC;EvEyxRhD;EuEvxRM;;IAEE,+BAA0C;EvEyxRlD;EuEvxRM;;IAEE,6BAAsC;EvEyxR9C;EuExyRM;IAAgC,0BAA4B;EvE2yRlE;EuE1yRM;;IAEE,8BAAoC;EvE4yR5C;EuE1yRM;;IAEE,gCAAwC;EvE4yRhD;EuE1yRM;;IAEE,iCAA0C;EvE4yRlD;EuE1yRM;;IAEE,+BAAsC;EvE4yR9C;EuE3zRM;IAAgC,wBAA4B;EvE8zRlE;EuE7zRM;;IAEE,4BAAoC;EvE+zR5C;EuE7zRM;;IAEE,8BAAwC;EvE+zRhD;EuE7zRM;;IAEE,+BAA0C;EvE+zRlD;EuE7zRM;;IAEE,6BAAsC;EvE+zR9C;EuEvzRM;IAAwB,2BAA2B;EvE0zRzD;EuEzzRM;;IAEE,+BAA+B;EvE2zRvC;EuEzzRM;;IAEE,iCAAiC;EvE2zRzC;EuEzzRM;;IAEE,kCAAkC;EvE2zR1C;EuEzzRM;;IAEE,gCAAgC;EvE2zRxC;EuE10RM;IAAwB,0BAA2B;EvE60RzD;EuE50RM;;IAEE,8BAA+B;EvE80RvC;EuE50RM;;IAEE,gCAAiC;EvE80RzC;EuE50RM;;IAEE,iCAAkC;EvE80R1C;EuE50RM;;IAEE,+BAAgC;EvE80RxC;EuE71RM;IAAwB,wBAA2B;EvEg2RzD;EuE/1RM;;IAEE,4BAA+B;EvEi2RvC;EuE/1RM;;IAEE,8BAAiC;EvEi2RzC;EuE/1RM;;IAEE,+BAAkC;EvEi2R1C;EuE/1RM;;IAEE,6BAAgC;EvEi2RxC;EuEh3RM;IAAwB,0BAA2B;EvEm3RzD;EuEl3RM;;IAEE,8BAA+B;EvEo3RvC;EuEl3RM;;IAEE,gCAAiC;EvEo3RzC;EuEl3RM;;IAEE,iCAAkC;EvEo3R1C;EuEl3RM;;IAEE,+BAAgC;EvEo3RxC;EuEn4RM;IAAwB,wBAA2B;EvEs4RzD;EuEr4RM;;IAEE,4BAA+B;EvEu4RvC;EuEr4RM;;IAEE,8BAAiC;EvEu4RzC;EuEr4RM;;IAEE,+BAAkC;EvEu4R1C;EuEr4RM;;IAEE,6BAAgC;EvEu4RxC;EuEj4RE;IAAmB,uBAAuB;EvEo4R5C;EuEn4RE;;IAEE,2BAA2B;EvEq4R/B;EuEn4RE;;IAEE,6BAA6B;EvEq4RjC;EuEn4RE;;IAEE,8BAA8B;EvEq4RlC;EuEn4RE;;IAEE,4BAA4B;EvEq4RhC;AACF;;AwEr8RA;EAAkB,4GAA8C;AxEy8RhE;;AwEr8RA;EAAiB,8BAA8B;AxEy8R/C;;AwEx8RA;EAAiB,8BAA8B;AxE48R/C;;AwE38RA;EAAiB,8BAA8B;AxE+8R/C;;AwE98RA;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AzE29RrB;;AwE58RI;EAAwB,2BAA2B;AxEg9RvD;;AwE/8RI;EAAwB,4BAA4B;AxEm9RxD;;AwEl9RI;EAAwB,6BAA6B;AxEs9RzD;;Acj7RI;E0DvCA;IAAwB,2BAA2B;ExE69RrD;EwE59RE;IAAwB,4BAA4B;ExE+9RtD;EwE99RE;IAAwB,6BAA6B;ExEi+RvD;AACF;;Ac77RI;E0DvCA;IAAwB,2BAA2B;ExEy+RrD;EwEx+RE;IAAwB,4BAA4B;ExE2+RtD;EwE1+RE;IAAwB,6BAA6B;ExE6+RvD;AACF;;Acz8RI;E0DvCA;IAAwB,2BAA2B;ExEq/RrD;EwEp/RE;IAAwB,4BAA4B;ExEu/RtD;EwEt/RE;IAAwB,6BAA6B;ExEy/RvD;AACF;;Acr9RI;E0DvCA;IAAwB,2BAA2B;ExEigSrD;EwEhgSE;IAAwB,4BAA4B;ExEmgStD;EwElgSE;IAAwB,6BAA6B;ExEqgSvD;AACF;;AwEhgSA;EAAmB,oCAAoC;AxEogSvD;;AwEngSA;EAAmB,oCAAoC;AxEugSvD;;AwEtgSA;EAAmB,qCAAqC;AxE0gSxD;;AwEtgSA;EAAuB,2BAA0C;AxE0gSjE;;AwEzgSA;EAAuB,+BAA4C;AxE6gSnE;;AwE5gSA;EAAuB,2BAA2C;AxEghSlE;;AwE/gSA;EAAuB,2BAAyC;AxEmhShE;;AwElhSA;EAAuB,8BAA2C;AxEshSlE;;AwErhSA;EAAuB,6BAA6B;AxEyhSpD;;AwErhSA;EAAc,sBAAwB;AxEyhStC;;A0EhkSE;EACE,yBAAwB;A1EmkS5B;;AKzjSE;EqELM,yBAA0E;A1EkkSlF;;A0ExkSE;EACE,yBAAwB;A1E2kS5B;;AKjkSE;EqELM,yBAA0E;A1E0kSlF;;A0EhlSE;EACE,yBAAwB;A1EmlS5B;;AKzkSE;EqELM,yBAA0E;A1EklSlF;;A0ExlSE;EACE,yBAAwB;A1E2lS5B;;AKjlSE;EqELM,yBAA0E;A1E0lSlF;;A0EhmSE;EACE,yBAAwB;A1EmmS5B;;AKzlSE;EqELM,yBAA0E;A1EkmSlF;;A0ExmSE;EACE,yBAAwB;A1E2mS5B;;AKjmSE;EqELM,yBAA0E;A1E0mSlF;;A0EhnSE;EACE,yBAAwB;A1EmnS5B;;AKzmSE;EqELM,yBAA0E;A1EknSlF;;A0ExnSE;EACE,yBAAwB;A1E2nS5B;;AKjnSE;EqELM,yBAA0E;A1E0nSlF;;AwEnlSA;EAAa,yBAA6B;AxEulS1C;;AwEtlSA;EAAc,yBAA6B;AxE0lS3C;;AwExlSA;EAAiB,oCAAkC;AxE4lSnD;;AwE3lSA;EAAiB,0CAAkC;AxE+lSnD;;AwE3lSA;EGvDE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,6BAA6B;EAC7B,SAAS;A3EspSX;;AwE/lSA;EAAwB,gCAAgC;AxEmmSxD;;AwEjmSA;EACE,iCAAiC;EACjC,oCAAoC;AxEomStC;;AwE/lSA;EAAc,yBAAyB;AxEmmSvC;;A4EpqSA;EACE,8BAA8B;A5EuqShC;;A4EpqSA;EACE,6BAA6B;A5EuqS/B;;A6EvqSE;E3EOF;;;I2EDM,4BAA4B;IAE5B,2BAA2B;E7EuqS/B;E6EpqSE;IAEI,0BAA0B;E7EqqShC;E6E5pSE;IACE,6BAA6B;E7E8pSjC;EE/9RF;I2EhLM,gCAAgC;E7EkpSpC;E6EhpSE;;IAEE,yB1EzCY;I0E0CZ,wBAAwB;E7EkpS5B;E6E1oSE;IACE,2BAA2B;E7E4oS/B;E6EzoSE;;IAEE,wBAAwB;E7E2oS5B;E6ExoSE;;;IAGE,UAAU;IACV,SAAS;E7E0oSb;E6EvoSE;;IAEE,uBAAuB;E7EyoS3B;E6EjoSE;IACE,Q1EwgCgC;EH2nQpC;EE/qSF;I2E+CM,2BAA2C;E7EmoS/C;EY1tSA;IiE0FI,2BAA2C;E7EmoS/C;EiCjtSF;I4CmFM,aAAa;E7EioSjB;EsChuSF;IuCkGM,sB1EtFS;EHutSb;EgBpuSF;I6DuGM,oCAAoC;E7EgoSxC;E6EjoSE;;IAKI,iCAAmC;E7EgoSzC;EgBnsSF;;I6D0EQ,oCAAsC;E7E6nS5C;EgBlnSF;I6DNM,cAAc;E7E2nSlB;EiBjvSA;;;;I4D4HM,qB1EvHU;EHkvShB;EgB7oSF;I6DuBM,cAAc;IACd,qB1E7HY;EHsvShB;AACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --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\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.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,\n.col-auto, .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,\n.col-sm-auto, .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,\n.col-md-auto, .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,\n.col-lg-auto, .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,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion > .card:first-of-type:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .tooltip-arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .popover-arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .popover-arrow, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .popover-arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .popover-arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .popover-arrow, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .popover-arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .popover-arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$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\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n$table-dark-color: $white !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2}) !default;\n$input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;\n$input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;\n\n$input-height: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2} + #{$input-height-border}) !default;\n$input-height-sm: calc(#{$input-line-height-sm * 1em} + #{$input-btn-padding-y-sm * 2} + #{$input-height-border}) !default;\n$input-height-lg: calc(#{$input-line-height-lg * 1em} + #{$input-btn-padding-y-lg * 2} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' 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\"), \"#\", \"%23\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\"), \"#\", \"%23\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding-x: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus($ignore-warning: true);\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\nselect.form-control {\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `<label>/<legend>` default\n @include font-size(inherit); // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: $input-padding-y;\n padding-bottom: $input-padding-y;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n height: $input-height-sm;\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.form-control-lg {\n height: $input-height-lg;\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n// stylelint-disable-next-line no-duplicate-selectors\nselect.form-control {\n &[size],\n &[multiple] {\n height: auto;\n }\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$form-grid-gutter-width / 2;\n margin-left: -$form-grid-gutter-width / 2;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: $form-grid-gutter-width / 2;\n padding-left: $form-grid-gutter-width / 2;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n &:disabled ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@each $state, $data in $form-validation-states {\n @include form-validation-state($state, map-get($data, color), map-get($data, icon));\n}\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group,\n .custom-select {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n @include deprecate(\"The `form-control-focus()` mixin\", \"v4.3.2\", \"v5\", $ignore-warning);\n}\n\n\n@mixin form-validation-state($state, $color, $icon) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: color-yiq($color);\n background-color: rgba($color, $form-feedback-tooltip-opacity);\n @include border-radius($form-feedback-tooltip-border-radius);\n }\n\n .form-control {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-image: $icon;\n background-repeat: no-repeat;\n background-position: center right $input-height-inner-quarter;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n .was-validated &:#{$state},\n &.is-#{$state} {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .custom-select {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $custom-select-feedback-icon-padding-right;\n background: $custom-select-background, $icon $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n\n .form-control-file {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .form-check-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n border-color: $color;\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:checked {\n ~ .custom-control-label::before {\n border-color: lighten($color, 10%);\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n &:not(:checked) ~ .custom-control-label::before {\n border-color: $color;\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-file-label {\n border-color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:focus {\n ~ .custom-file-label {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-family: $btn-font-family;\n font-weight: $btn-font-weight;\n color: $body-color;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n @include hover {\n color: $body-color;\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active {\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n text-decoration: $link-decoration;\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n box-shadow: none;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n border-color: $color;\n\n @include hover {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @include border-radius($border-radius, 0);\n}\n",".fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n\n // Generate the caret automatically\n @include caret;\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n @include font-size($dropdown-font-size);\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .dropdown-menu#{$infix}-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu#{$infix}-right {\n right: 0;\n left: auto;\n }\n }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n // Prevent dropdown overflow if there's no padding\n // See https://github.com/twbs/bootstrap/pull/27703\n @if $dropdown-padding-y == 0 {\n &:first-child {\n @include border-top-radius($dropdown-inner-border-radius);\n }\n\n &:last-child {\n @include border-bottom-radius($dropdown-inner-border-radius);\n }\n }\n\n @include hover-focus {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n pointer-events: none;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-padding-y $dropdown-item-padding-x;\n margin-bottom: 0; // for use with heading elements\n @include font-size($font-size-sm);\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n","@mixin caret-down {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n margin-left: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @if $direction == down {\n @include caret-down;\n } @else if $direction == up {\n @include caret-up;\n } @else if $direction == right {\n @include caret-right;\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n margin-right: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @include caret-left;\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 1 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n // Prevent double borders when buttons are next to each other\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-left: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropright &::after {\n margin-left: 0;\n }\n\n .dropleft &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > .btn,\n > .btn-group {\n width: 100%;\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-control-plaintext,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n // Add width 1% and flex-basis auto to ensure that button will not wrap out\n // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.\n width: 1%;\n margin-bottom: 0;\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .custom-select:focus,\n > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n }\n\n // Bring the custom file input above the label\n > .custom-file .custom-file-input:focus {\n z-index: 4;\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 3;\n }\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n @include font-size($input-font-size); // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: $input-height-lg;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: $input-height-sm;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n display: block;\n min-height: $font-size-base * $line-height-base;\n padding-left: $custom-control-gutter + $custom-control-indicator-size;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n border-color: $custom-control-indicator-checked-border-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n }\n\n &:focus:not(:checked) ~ .custom-control-label::before {\n border-color: $custom-control-indicator-focus-border-color;\n }\n\n &:not(:disabled):active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n border-color: $custom-control-indicator-active-border-color;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n &:disabled {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of pseudo-elements.\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n background-color: $custom-control-indicator-bg;\n border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background: no-repeat 50% / #{$custom-control-indicator-bg-size};\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: $custom-checkbox-indicator-icon-checked;\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n border-color: $custom-checkbox-indicator-indeterminate-border-color;\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-indeterminate;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n &:indeterminate ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: $custom-radio-indicator-icon-checked;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// switches\n//\n// Tweak a few things for switches\n\n.custom-switch {\n padding-left: $custom-switch-width + $custom-control-gutter;\n\n .custom-control-label {\n &::before {\n left: -($custom-switch-width + $custom-control-gutter);\n width: $custom-switch-width;\n pointer-events: all;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n }\n\n &::after {\n top: calc(#{(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2)} + #{$custom-control-indicator-border-width * 2});\n left: calc(#{-($custom-switch-width + $custom-control-gutter)} + #{$custom-control-indicator-border-width * 2});\n width: $custom-switch-indicator-size;\n height: $custom-switch-indicator-size;\n background-color: $custom-control-indicator-border-color;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n @include transition(transform .15s ease-in-out, $custom-forms-transition);\n }\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-color: $custom-control-indicator-bg;\n transform: translateX($custom-switch-width - $custom-control-indicator-size);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n font-family: $custom-select-font-family;\n @include font-size($custom-select-font-size);\n font-weight: $custom-select-font-weight;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-background;\n background-color: $custom-select-bg;\n border: $custom-select-border-width solid $custom-select-border-color;\n @include border-radius($custom-select-border-radius, 0);\n @include box-shadow($custom-select-box-shadow);\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n box-shadow: $custom-select-box-shadow, $custom-select-focus-box-shadow;\n } @else {\n box-shadow: $custom-select-focus-box-shadow;\n }\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n display: none;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y-sm;\n padding-bottom: $custom-select-padding-y-sm;\n padding-left: $custom-select-padding-x-sm;\n @include font-size($custom-select-font-size-sm);\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y-lg;\n padding-bottom: $custom-select-padding-y-lg;\n padding-left: $custom-select-padding-x-lg;\n @include font-size($custom-select-font-size-lg);\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-label {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n }\n\n &:disabled ~ .custom-file-label {\n background-color: $custom-file-disabled-bg;\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n\n ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n font-family: $custom-file-font-family;\n font-weight: $custom-file-font-weight;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: $custom-file-height-inner;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: inherit;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n width: 100%;\n height: calc(#{$custom-range-thumb-height} + #{$custom-range-thumb-focus-box-shadow-width * 2});\n padding: 0; // Need to reset padding\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: none;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n // No box-shadow() mixin for focus accessibility.\n &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent; // Why?\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent;\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: 0; // Edge specific\n margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-ms-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: transparent;\n border-color: transparent;\n border-width: $custom-range-thumb-height / 2;\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-fill-lower {\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &::-ms-fill-upper {\n margin-right: 15px; // arbitrary?\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &:disabled {\n &::-webkit-slider-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-webkit-slider-runnable-track {\n cursor: default;\n }\n\n &::-moz-range-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-moz-range-track {\n cursor: default;\n }\n\n &::-ms-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n }\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n @include transition($custom-forms-transition);\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s or `<ul>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n pointer-events: none;\n cursor: default;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properties so that content nested within behave properly.\n > .container,\n > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n @include font-size($navbar-brand-font-size);\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n @include font-size($navbar-toggler-font-size);\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n > .container,\n > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n > .container,\n > .container-fluid {\n flex-wrap: nowrap;\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-brand-color;\n\n @include hover-focus {\n color: $navbar-light-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-light-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-brand-color;\n\n @include hover-focus {\n color: $navbar-dark-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-dark-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group:first-child {\n .list-group-item:first-child {\n @include border-top-radius($card-border-radius);\n }\n }\n\n > .list-group:last-child {\n .list-group-item:last-child {\n @include border-bottom-radius($card-border-radius);\n }\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n padding: $card-spacer-x;\n color: $card-color;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -$card-spacer-y / 2;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n\n + .list-group {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -$card-spacer-x / 2;\n margin-bottom: -$card-spacer-y;\n margin-left: -$card-spacer-x / 2;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -$card-spacer-x / 2;\n margin-left: -$card-spacer-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n}\n\n.card-img {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-radius($card-inner-border-radius);\n}\n\n// Card image caps\n.card-img-top {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n display: flex;\n flex-direction: column;\n\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n display: flex;\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n display: flex;\n flex-direction: column;\n\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-right-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-left-radius: 0;\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n orphans: 1;\n widows: 1;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n > .card {\n overflow: hidden;\n\n &:not(:first-of-type) {\n .card-header:first-child {\n @include border-radius(0);\n }\n\n &:not(:last-of-type) {\n border-bottom: 0;\n @include border-radius(0);\n }\n }\n\n &:first-of-type:not(:last-of-type) {\n border-bottom: 0;\n @include border-bottom-radius(0);\n }\n\n &:last-of-type {\n @include border-top-radius(0);\n }\n\n .card-header {\n margin-bottom: -$card-border-width;\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding-x;\n\n &::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding-x;\n color: $breadcrumb-divider-color;\n content: $breadcrumb-divider;\n }\n }\n\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 2;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 1;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n @include font-size($badge-font-size);\n font-weight: $badge-font-weight;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n @include transition($badge-transition);\n\n @at-root a#{&} {\n @include hover-focus {\n text-decoration: none;\n }\n }\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n padding-right: $badge-pill-padding-x;\n padding-left: $badge-pill-padding-x;\n @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n .badge-#{$color} {\n @include badge-variant($value);\n }\n}\n","@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n @at-root a#{&} {\n @include hover-focus {\n color: color-yiq($bg);\n background-color: darken($bg, 10%);\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\n }\n }\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n color: $jumbotron-color;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: $close-font-size + $alert-padding-x * 2;\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","// Disable animation if transitions are disabled\n@if $enable-transitions {\n @keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n @include font-size($progress-font-size);\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n .progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -$list-group-border-width;\n color: $list-group-color;\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius($list-group-border-radius);\n }\n\n &:last-child {\n margin-bottom: 0;\n @include border-bottom-radius($list-group-border-radius);\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n pointer-events: none;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .list-group-horizontal#{$infix} {\n flex-direction: row;\n\n .list-group-item {\n margin-right: -$list-group-border-width;\n margin-bottom: 0;\n\n &:first-child {\n @include border-left-radius($list-group-border-radius);\n @include border-top-right-radius(0);\n }\n\n &:last-child {\n margin-right: 0;\n @include border-right-radius($list-group-border-radius);\n @include border-bottom-left-radius(0);\n }\n }\n }\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n .list-group-item {\n border-right: 0;\n border-left: 0;\n @include border-radius(0);\n\n &:last-child {\n margin-bottom: -$list-group-border-width;\n }\n }\n\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n\n &:last-child {\n .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n @include font-size($close-font-size);\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n // Override <a>'s hover style\n @include hover {\n color: $close-color;\n text-decoration: none;\n }\n\n &:not(:disabled):not(.disabled) {\n @include hover-focus {\n opacity: .75;\n }\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n pointer-events: none;\n}\n",".toast {\n max-width: $toast-max-width;\n overflow: hidden; // cheap rounded corners on nested items\n @include font-size($toast-font-size);\n color: $toast-color;\n background-color: $toast-background-color;\n background-clip: padding-box;\n border: $toast-border-width solid $toast-border-color;\n box-shadow: $toast-box-shadow;\n backdrop-filter: blur(10px);\n opacity: 0;\n @include border-radius($toast-border-radius);\n\n &:not(:last-child) {\n margin-bottom: $toast-padding-x;\n }\n\n &.showing {\n opacity: 1;\n }\n\n &.show {\n display: block;\n opacity: 1;\n }\n\n &.hide {\n display: none;\n }\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: $toast-padding-y $toast-padding-x;\n color: $toast-header-color;\n background-color: $toast-header-background-color;\n background-clip: padding-box;\n border-bottom: $toast-border-width solid $toast-header-border-color;\n}\n\n.toast-body {\n padding: $toast-padding-x; // apply to both vertical and horizontal\n}\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n // Kill the scroll on the body\n overflow: hidden;\n\n .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: $modal-fade-transform;\n }\n .modal.show & {\n transform: $modal-show-transform;\n }\n}\n\n.modal-dialog-scrollable {\n display: flex; // IE10/11\n max-height: calc(100% - #{$modal-dialog-margin * 2});\n\n .modal-content {\n max-height: calc(100vh - #{$modal-dialog-margin * 2}); // IE10/11\n overflow: hidden;\n }\n\n .modal-header,\n .modal-footer {\n flex-shrink: 0;\n }\n\n .modal-body {\n overflow-y: auto;\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - #{$modal-dialog-margin * 2});\n\n // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\n &::before {\n display: block; // IE10\n height: calc(100vh - #{$modal-dialog-margin * 2});\n content: \"\";\n }\n\n // Ensure `.modal-body` shows scrollbar (IE10/11)\n &.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n\n .modal-content {\n max-height: none;\n }\n\n &::before {\n content: none;\n }\n }\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n color: $modal-content-color;\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n width: 100vw;\n height: 100vh;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-border-radius);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when should there be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n @include border-bottom-radius($modal-content-border-radius);\n\n // Easily place margin between footer elements\n > :not(:first-child) { margin-left: .25rem; }\n > :not(:last-child) { margin-right: .25rem; }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-scrollable {\n max-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});\n\n .modal-content {\n max-height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});\n }\n }\n\n .modal-dialog-centered {\n min-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});\n\n &::before {\n height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});\n }\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg,\n .modal-xl {\n max-width: $modal-lg;\n }\n}\n\n@include media-breakpoint-up(xl) {\n .modal-xl { max-width: $modal-xl; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .tooltip-arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .tooltip-arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .tooltip-arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .tooltip-arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .tooltip-arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .popover-arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $border-radius-lg;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n > .popover-arrow {\n bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n\n &::before {\n bottom: 0;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n &::after {\n bottom: $popover-border-width;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n > .popover-arrow {\n left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n left: 0;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n &::after {\n left: $popover-border-width;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n > .popover-arrow {\n top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n\n &::before {\n top: 0;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n &::after {\n top: $popover-border-width;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-color;\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: -$popover-arrow-width / 2;\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n > .popover-arrow {\n right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n right: 0;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-outer-color;\n }\n\n &::after {\n right: $popover-border-width;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n @include font-size($font-size-base);\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});\n @include border-top-radius($offset-border-width);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n @include clearfix();\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-left,\n .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n @include transition(0s $carousel-transition-duration opacity);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n @include transition($carousel-control-transition);\n\n // Hover/focus state\n @include hover-focus {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: $carousel-control-hover-opacity;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: no-repeat 50% / 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: $carousel-control-prev-icon-bg;\n}\n.carousel-control-next-icon {\n background-image: $carousel-control-next-icon-bg;\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n cursor: pointer;\n background-color: $carousel-indicator-active-bg;\n background-clip: padding-box;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-top: $carousel-indicator-hit-area-height solid transparent;\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\n opacity: .5;\n @include transition($carousel-indicator-transition);\n }\n\n .active {\n opacity: 1;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: (100% - $carousel-caption-width) / 2;\n bottom: 20px;\n left: (100% - $carousel-caption-width) / 2;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","//\n// Rotating border\n//\n\n@keyframes spinner-border {\n to { transform: rotate(360deg); }\n}\n\n.spinner-border {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n border: $spinner-border-width solid currentColor;\n border-right-color: transparent;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n background-color: currentColor;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus {\n background-color: darken($color, 10%) !important;\n }\n }\n}\n\n@mixin bg-gradient-variant($parent, $color) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n @include bg-variant(\".bg-#{$color}\", $value);\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable property-blacklist, declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded-sm {\n border-radius: $border-radius-sm !important;\n}\n\n.rounded {\n border-radius: $border-radius !important;\n}\n\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-lg {\n border-radius: $border-radius-lg !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: $rounded-pill !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\n $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\n $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\n\n .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\n &::before {\n padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { float: left !important; }\n .float#{$infix}-right { float: right !important; }\n .float#{$infix}-none { float: none !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $overflows {\n .overflow-#{$value} { overflow: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n\n// Viewport additional helpers\n\n.min-vw-100 { min-width: 100vw !important; }\n.min-vh-100 { min-height: 100vh !important; }\n\n.vw-100 { width: 100vw !important; }\n.vh-100 { height: 100vh !important; }\n","//\n// Stretched link\n//\n\n.stretched-link {\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n // Just in case `pointer-events: none` is set on a parent\n pointer-events: auto;\n content: \"\";\n // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\n background-color: rgba(0, 0, 0, 0);\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace !important; }\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-wrap { white-space: normal !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate; }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-weight-bolder { font-weight: $font-weight-bolder !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n @include text-hide($ignore-warning: true);\n}\n\n.text-decoration-none { text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important; // IE & < Edge 18\n overflow-wrap: break-word !important;\n}\n\n// Reset\n\n.text-reset { color: inherit !important; }\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color) {\n #{$parent} {\n color: $color !important;\n }\n @if $emphasized-link-hover-darken-percentage != 0 {\n a#{$parent} {\n @include hover-focus {\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n }\n }\n }\n}\n","// CSS image replacement\n@mixin text-hide($ignore-warning: false) {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n\n @include deprecate(\"`text-hide()`\", \"v4.1.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Visibility utilities\n//\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: $black !important; // Black prints faster\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid $black;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: $white !important;\n }\n }\n\n .table-bordered {\n th,\n td {\n border: 1px solid $gray-300 !important;\n }\n }\n\n .table-dark {\n color: inherit;\n\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $table-border-color;\n }\n }\n\n .table .thead-dark th {\n color: inherit;\n border-color: $table-border-color;\n }\n\n // Bootstrap specific changes end\n }\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../../scss/bootstrap.scss","bootstrap.css","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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AFjH1B;;AAEA;EEuHE,wBAAwB;AFrH1B;;AE6HA;EACE,aAAa;EACb,0BAA0B;AF1H5B;;AEiIA;EACE,qBAAqB;AF9HvB;;AEiIA;EACE,kBAAkB;EAClB,eAAe;AF9HjB;;AEiIA;EACE,aAAa;AF9Hf;;AAEA;EEkIE,wBAAwB;AFhI1B;;AM/VA;;EAEE,qBHiSuC;EG/RvC,gBHiS+B;EGhS/B,gBHiS+B;AHgEjC;;AM7VA;EF2HM,iBAAW;AJsOjB;;AMhWA;EF0HM,eAAW;AJ0OjB;;AMnWA;EFyHM,kBAAW;AJ8OjB;;AMtWA;EFwHM,iBAAW;AJkPjB;;AMzWA;EFuHM,kBAAW;AJsPjB;;AM5WA;EFsHM,eAAW;AJ0PjB;;AM9WA;EFoHM,kBAAW;EElHf,gBHmS+B;AH8EjC;;AM7WA;EF8GM,eAAW;EE5Gf,gBHsR+B;EGrR/B,gBH6Q+B;AHmGjC;;AM9WA;EFyGM,iBAAW;EEvGf,gBHkR+B;EGjR/B,gBHwQ+B;AHyGjC;;AM/WA;EFoGM,iBAAW;EElGf,gBH8Q+B;EG7Q/B,gBHmQ+B;AH+GjC;;AMhXA;EF+FM,iBAAW;EE7Ff,gBH0Q+B;EGzQ/B,gBH8P+B;AHqHjC;;AEtVA;EIpBE,gBH0EW;EGzEX,mBHyEW;EGxEX,SAAS;EACT,wCHzCa;AHuZf;;AMtWA;;EFwDI,cAAW;EErDb,gBHsN+B;AHmJjC;;AMtWA;;EAEE,cH8PgC;EG7PhC,yBHsQmC;AHmGrC;;AMjWA;EC/EE,eAAe;EACf,gBAAgB;APoblB;;AMjWA;ECpFE,eAAe;EACf,gBAAgB;APyblB;;AMnWA;EACE,qBAAqB;ANsWvB;;AMvWA;EAII,oBHgP+B;AHuHnC;;AM7VA;EFiBI,cAAW;EEfb,yBAAyB;ANgW3B;;AM5VA;EACE,mBHiBW;ECSP,kBAAW;AJsUjB;;AM5VA;EACE,cAAc;EFKZ,cAAW;EEHb,cH1GgB;AHyclB;;AMlWA;EAMI,qBAAqB;ANgWzB;;AQndA;ECIE,eAAe;EAGf,YAAY;ATidd;;AQldA;EACE,gBLy+BwC;EKx+BxC,sBLRa;EKSb,yBLNgB;EOLd,sBPqOgC;EM/NlC,eAAe;EAGf,YAAY;AT0dd;;AQ5cA;EAEE,qBAAqB;AR8cvB;;AQ3cA;EACE,qBAA0B;EAC1B,cAAc;AR8chB;;AQ3cA;EJoFI,cAAW;EIlFb,cL3BgB;AHyelB;;AWrfA;EPyHI,gBAAW;EOvHb,cRoCe;EQnCf,sBAAsB;AXwfxB;;AWrfE;EACE,cAAc;AXwflB;;AWnfA;EACE,sBR2jCuC;EC/8BrC,gBAAW;EO1Gb,WRTa;EQUb,yBRDgB;EOXd,qBPuO+B;AH4RnC;;AW3fA;EASI,UAAU;EPoGV,eAAW;EOlGX,gBRoQ6B;AHkPjC;;AEzSA;EStME,cAAc;EP2FZ,gBAAW;EOzFb,cRjBgB;AHogBlB;;AWtfA;EP4FI,kBAAW;EOpFX,cAAc;EACd,kBAAkB;AXmftB;;AW9eA;EACE,iBRkiCuC;EQjiCvC,kBAAkB;AXifpB;;AY1hBE;ECAA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab8hBnB;;Ac3eI;EFvDF;ICYI,gBV8LK;EH6VT;AACF;;AcjfI;EFvDF;ICYI,gBV+LK;EHkWT;AACF;;AcvfI;EFvDF;ICYI,gBVgMK;EHuWT;AACF;;Ac7fI;EFvDF;ICYI,iBViMM;EH4WV;AACF;;AY9iBE;ECZA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab8jBnB;;AY5iBE;ECJA,aAAa;EACb,eAAe;EACf,mBAA0B;EAC1B,kBAAyB;AbojB3B;;AY7iBE;EACE,eAAe;EACf,cAAc;AZgjBlB;;AYljBE;;EAMI,gBAAgB;EAChB,eAAe;AZijBrB;;AellBE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;Af0lB7B;;AevkBM;EACE,aAAa;EACb,YAAY;EACZ,eAAe;Af0kBvB;;AexkBM;EACE,cAAc;EACd,WAAW;EACX,eAAe;Af2kBvB;;AevkBQ;EFFN,mBAAsC;EAItC,oBAAuC;Ab0kBzC;;Ae5kBQ;EFFN,oBAAsC;EAItC,qBAAuC;Ab+kBzC;;AejlBQ;EFFN,aAAsC;EAItC,cAAuC;AbolBzC;;AetlBQ;EFFN,oBAAsC;EAItC,qBAAuC;AbylBzC;;Ae3lBQ;EFFN,oBAAsC;EAItC,qBAAuC;Ab8lBzC;;AehmBQ;EFFN,aAAsC;EAItC,cAAuC;AbmmBzC;;AermBQ;EFFN,oBAAsC;EAItC,qBAAuC;AbwmBzC;;Ae1mBQ;EFFN,oBAAsC;EAItC,qBAAuC;Ab6mBzC;;Ae/mBQ;EFFN,aAAsC;EAItC,cAAuC;AbknBzC;;AepnBQ;EFFN,oBAAsC;EAItC,qBAAuC;AbunBzC;;AeznBQ;EFFN,oBAAsC;EAItC,qBAAuC;Ab4nBzC;;Ae9nBQ;EFFN,cAAsC;EAItC,eAAuC;AbioBzC;;Ae9nBM;EAAwB,SAAS;AfkoBvC;;AehoBM;EAAuB,SZ2KG;AHydhC;;AejoBQ;EAAwB,QADZ;AfsoBpB;;AeroBQ;EAAwB,QADZ;Af0oBpB;;AezoBQ;EAAwB,QADZ;Af8oBpB;;Ae7oBQ;EAAwB,QADZ;AfkpBpB;;AejpBQ;EAAwB,QADZ;AfspBpB;;AerpBQ;EAAwB,QADZ;Af0pBpB;;AezpBQ;EAAwB,QADZ;Af8pBpB;;Ae7pBQ;EAAwB,QADZ;AfkqBpB;;AejqBQ;EAAwB,QADZ;AfsqBpB;;AerqBQ;EAAwB,QADZ;Af0qBpB;;AezqBQ;EAAwB,SADZ;Af8qBpB;;Ae7qBQ;EAAwB,SADZ;AfkrBpB;;AejrBQ;EAAwB,SADZ;AfsrBpB;;Ae/qBU;EFTR,sBAA8C;Ab4rBhD;;AenrBU;EFTR,uBAA8C;AbgsBhD;;AevrBU;EFTR,gBAA8C;AbosBhD;;Ae3rBU;EFTR,uBAA8C;AbwsBhD;;Ae/rBU;EFTR,uBAA8C;Ab4sBhD;;AensBU;EFTR,gBAA8C;AbgtBhD;;AevsBU;EFTR,uBAA8C;AbotBhD;;Ae3sBU;EFTR,uBAA8C;AbwtBhD;;Ae/sBU;EFTR,gBAA8C;Ab4tBhD;;AentBU;EFTR,uBAA8C;AbguBhD;;AevtBU;EFTR,uBAA8C;AbouBhD;;AcztBI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;Ef2vBrB;EezvBI;IACE,cAAc;IACd,WAAW;IACX,eAAe;Ef2vBrB;EevvBM;IFFN,mBAAsC;IAItC,oBAAuC;EbyvBvC;Ee3vBM;IFFN,oBAAsC;IAItC,qBAAuC;Eb6vBvC;Ee/vBM;IFFN,aAAsC;IAItC,cAAuC;EbiwBvC;EenwBM;IFFN,oBAAsC;IAItC,qBAAuC;EbqwBvC;EevwBM;IFFN,oBAAsC;IAItC,qBAAuC;EbywBvC;Ee3wBM;IFFN,aAAsC;IAItC,cAAuC;Eb6wBvC;Ee/wBM;IFFN,oBAAsC;IAItC,qBAAuC;EbixBvC;EenxBM;IFFN,oBAAsC;IAItC,qBAAuC;EbqxBvC;EevxBM;IFFN,aAAsC;IAItC,cAAuC;EbyxBvC;Ee3xBM;IFFN,oBAAsC;IAItC,qBAAuC;Eb6xBvC;Ee/xBM;IFFN,oBAAsC;IAItC,qBAAuC;EbiyBvC;EenyBM;IFFN,cAAsC;IAItC,eAAuC;EbqyBvC;EelyBI;IAAwB,SAAS;EfqyBrC;EenyBI;IAAuB,SZ2KG;EH2nB9B;EenyBM;IAAwB,QADZ;EfuyBlB;EetyBM;IAAwB,QADZ;Ef0yBlB;EezyBM;IAAwB,QADZ;Ef6yBlB;Ee5yBM;IAAwB,QADZ;EfgzBlB;Ee/yBM;IAAwB,QADZ;EfmzBlB;EelzBM;IAAwB,QADZ;EfszBlB;EerzBM;IAAwB,QADZ;EfyzBlB;EexzBM;IAAwB,QADZ;Ef4zBlB;Ee3zBM;IAAwB,QADZ;Ef+zBlB;Ee9zBM;IAAwB,QADZ;Efk0BlB;Eej0BM;IAAwB,SADZ;Efq0BlB;Eep0BM;IAAwB,SADZ;Efw0BlB;Eev0BM;IAAwB,SADZ;Ef20BlB;Eep0BQ;IFTR,cAA4B;Ebg1B5B;Eev0BQ;IFTR,sBAA8C;Ebm1B9C;Ee10BQ;IFTR,uBAA8C;Ebs1B9C;Ee70BQ;IFTR,gBAA8C;Eby1B9C;Eeh1BQ;IFTR,uBAA8C;Eb41B9C;Een1BQ;IFTR,uBAA8C;Eb+1B9C;Eet1BQ;IFTR,gBAA8C;Ebk2B9C;Eez1BQ;IFTR,uBAA8C;Ebq2B9C;Ee51BQ;IFTR,uBAA8C;Ebw2B9C;Ee/1BQ;IFTR,gBAA8C;Eb22B9C;Eel2BQ;IFTR,uBAA8C;Eb82B9C;Eer2BQ;IFTR,uBAA8C;Ebi3B9C;AACF;;Acv2BI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;Efy4BrB;Eev4BI;IACE,cAAc;IACd,WAAW;IACX,eAAe;Efy4BrB;Eer4BM;IFFN,mBAAsC;IAItC,oBAAuC;Ebu4BvC;Eez4BM;IFFN,oBAAsC;IAItC,qBAAuC;Eb24BvC;Ee74BM;IFFN,aAAsC;IAItC,cAAuC;Eb+4BvC;Eej5BM;IFFN,oBAAsC;IAItC,qBAAuC;Ebm5BvC;Eer5BM;IFFN,oBAAsC;IAItC,qBAAuC;Ebu5BvC;Eez5BM;IFFN,aAAsC;IAItC,cAAuC;Eb25BvC;Ee75BM;IFFN,oBAAsC;IAItC,qBAAuC;Eb+5BvC;Eej6BM;IFFN,oBAAsC;IAItC,qBAAuC;Ebm6BvC;Eer6BM;IFFN,aAAsC;IAItC,cAAuC;Ebu6BvC;Eez6BM;IFFN,oBAAsC;IAItC,qBAAuC;Eb26BvC;Ee76BM;IFFN,oBAAsC;IAItC,qBAAuC;Eb+6BvC;Eej7BM;IFFN,cAAsC;IAItC,eAAuC;Ebm7BvC;Eeh7BI;IAAwB,SAAS;Efm7BrC;Eej7BI;IAAuB,SZ2KG;EHywB9B;Eej7BM;IAAwB,QADZ;Efq7BlB;Eep7BM;IAAwB,QADZ;Efw7BlB;Eev7BM;IAAwB,QADZ;Ef27BlB;Ee17BM;IAAwB,QADZ;Ef87BlB;Ee77BM;IAAwB,QADZ;Efi8BlB;Eeh8BM;IAAwB,QADZ;Efo8BlB;Een8BM;IAAwB,QADZ;Efu8BlB;Eet8BM;IAAwB,QADZ;Ef08BlB;Eez8BM;IAAwB,QADZ;Ef68BlB;Ee58BM;IAAwB,QADZ;Efg9BlB;Ee/8BM;IAAwB,SADZ;Efm9BlB;Eel9BM;IAAwB,SADZ;Efs9BlB;Eer9BM;IAAwB,SADZ;Efy9BlB;Eel9BQ;IFTR,cAA4B;Eb89B5B;Eer9BQ;IFTR,sBAA8C;Ebi+B9C;Eex9BQ;IFTR,uBAA8C;Ebo+B9C;Ee39BQ;IFTR,gBAA8C;Ebu+B9C;Ee99BQ;IFTR,uBAA8C;Eb0+B9C;Eej+BQ;IFTR,uBAA8C;Eb6+B9C;Eep+BQ;IFTR,gBAA8C;Ebg/B9C;Eev+BQ;IFTR,uBAA8C;Ebm/B9C;Ee1+BQ;IFTR,uBAA8C;Ebs/B9C;Ee7+BQ;IFTR,gBAA8C;Eby/B9C;Eeh/BQ;IFTR,uBAA8C;Eb4/B9C;Een/BQ;IFTR,uBAA8C;Eb+/B9C;AACF;;Acr/BI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;EfuhCrB;EerhCI;IACE,cAAc;IACd,WAAW;IACX,eAAe;EfuhCrB;EenhCM;IFFN,mBAAsC;IAItC,oBAAuC;EbqhCvC;EevhCM;IFFN,oBAAsC;IAItC,qBAAuC;EbyhCvC;Ee3hCM;IFFN,aAAsC;IAItC,cAAuC;Eb6hCvC;Ee/hCM;IFFN,oBAAsC;IAItC,qBAAuC;EbiiCvC;EeniCM;IFFN,oBAAsC;IAItC,qBAAuC;EbqiCvC;EeviCM;IFFN,aAAsC;IAItC,cAAuC;EbyiCvC;Ee3iCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb6iCvC;Ee/iCM;IFFN,oBAAsC;IAItC,qBAAuC;EbijCvC;EenjCM;IFFN,aAAsC;IAItC,cAAuC;EbqjCvC;EevjCM;IFFN,oBAAsC;IAItC,qBAAuC;EbyjCvC;Ee3jCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb6jCvC;Ee/jCM;IFFN,cAAsC;IAItC,eAAuC;EbikCvC;Ee9jCI;IAAwB,SAAS;EfikCrC;Ee/jCI;IAAuB,SZ2KG;EHu5B9B;Ee/jCM;IAAwB,QADZ;EfmkClB;EelkCM;IAAwB,QADZ;EfskClB;EerkCM;IAAwB,QADZ;EfykClB;EexkCM;IAAwB,QADZ;Ef4kClB;Ee3kCM;IAAwB,QADZ;Ef+kClB;Ee9kCM;IAAwB,QADZ;EfklClB;EejlCM;IAAwB,QADZ;EfqlClB;EeplCM;IAAwB,QADZ;EfwlClB;EevlCM;IAAwB,QADZ;Ef2lClB;Ee1lCM;IAAwB,QADZ;Ef8lClB;Ee7lCM;IAAwB,SADZ;EfimClB;EehmCM;IAAwB,SADZ;EfomClB;EenmCM;IAAwB,SADZ;EfumClB;EehmCQ;IFTR,cAA4B;Eb4mC5B;EenmCQ;IFTR,sBAA8C;Eb+mC9C;EetmCQ;IFTR,uBAA8C;EbknC9C;EezmCQ;IFTR,gBAA8C;EbqnC9C;Ee5mCQ;IFTR,uBAA8C;EbwnC9C;Ee/mCQ;IFTR,uBAA8C;Eb2nC9C;EelnCQ;IFTR,gBAA8C;Eb8nC9C;EernCQ;IFTR,uBAA8C;EbioC9C;EexnCQ;IFTR,uBAA8C;EbooC9C;Ee3nCQ;IFTR,gBAA8C;EbuoC9C;Ee9nCQ;IFTR,uBAA8C;Eb0oC9C;EejoCQ;IFTR,uBAA8C;Eb6oC9C;AACF;;AcnoCI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;EfqqCrB;EenqCI;IACE,cAAc;IACd,WAAW;IACX,eAAe;EfqqCrB;EejqCM;IFFN,mBAAsC;IAItC,oBAAuC;EbmqCvC;EerqCM;IFFN,oBAAsC;IAItC,qBAAuC;EbuqCvC;EezqCM;IFFN,aAAsC;IAItC,cAAuC;Eb2qCvC;Ee7qCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb+qCvC;EejrCM;IFFN,oBAAsC;IAItC,qBAAuC;EbmrCvC;EerrCM;IFFN,aAAsC;IAItC,cAAuC;EburCvC;EezrCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb2rCvC;Ee7rCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb+rCvC;EejsCM;IFFN,aAAsC;IAItC,cAAuC;EbmsCvC;EersCM;IFFN,oBAAsC;IAItC,qBAAuC;EbusCvC;EezsCM;IFFN,oBAAsC;IAItC,qBAAuC;Eb2sCvC;Ee7sCM;IFFN,cAAsC;IAItC,eAAuC;Eb+sCvC;Ee5sCI;IAAwB,SAAS;Ef+sCrC;Ee7sCI;IAAuB,SZ2KG;EHqiC9B;Ee7sCM;IAAwB,QADZ;EfitClB;EehtCM;IAAwB,QADZ;EfotClB;EentCM;IAAwB,QADZ;EfutClB;EettCM;IAAwB,QADZ;Ef0tClB;EeztCM;IAAwB,QADZ;Ef6tClB;Ee5tCM;IAAwB,QADZ;EfguClB;Ee/tCM;IAAwB,QADZ;EfmuClB;EeluCM;IAAwB,QADZ;EfsuClB;EeruCM;IAAwB,QADZ;EfyuClB;EexuCM;IAAwB,QADZ;Ef4uClB;Ee3uCM;IAAwB,SADZ;Ef+uClB;Ee9uCM;IAAwB,SADZ;EfkvClB;EejvCM;IAAwB,SADZ;EfqvClB;Ee9uCQ;IFTR,cAA4B;Eb0vC5B;EejvCQ;IFTR,sBAA8C;Eb6vC9C;EepvCQ;IFTR,uBAA8C;EbgwC9C;EevvCQ;IFTR,gBAA8C;EbmwC9C;Ee1vCQ;IFTR,uBAA8C;EbswC9C;Ee7vCQ;IFTR,uBAA8C;EbywC9C;EehwCQ;IFTR,gBAA8C;Eb4wC9C;EenwCQ;IFTR,uBAA8C;Eb+wC9C;EetwCQ;IFTR,uBAA8C;EbkxC9C;EezwCQ;IFTR,gBAA8C;EbqxC9C;Ee5wCQ;IFTR,uBAA8C;EbwxC9C;Ee/wCQ;IFTR,uBAA8C;Eb2xC9C;AACF;;AgBz0CA;EACE,WAAW;EACX,mBb2HW;Ea1HX,cbSgB;AHm0ClB;;AgB/0CA;;EAQI,gBb8UgC;Ea7UhC,mBAAmB;EACnB,6BbJc;AHg1ClB;;AgBt1CA;EAcI,sBAAsB;EACtB,gCbTc;AHq1ClB;;AgB31CA;EAmBI,6Bbbc;AHy1ClB;;AgBn0CA;;EAGI,ebwT+B;AH6gCnC;;AgB5zCA;EACE,yBbnCgB;AHk2ClB;;AgBh0CA;;EAKI,yBbvCc;AHu2ClB;;AgBr0CA;;EAWM,wBAA4C;AhB+zClD;;AgB1zCA;;;;EAKI,SAAS;AhB4zCb;;AgBpzCA;EAEI,qCb1DW;AHg3Cf;;AKr3CE;EW2EI,cbvEY;EawEZ,sCbvES;AHq3Cf;;AiBj4CE;;;EAII,yBC2E4D;AlBwzClE;;AiBv4CE;;;;EAYM,qBCmE0D;AlB+zClE;;AKv4CE;EYiBM,yBAJsC;AjB83C9C;;AiB/3CE;;EASQ,yBARoC;AjBm4C9C;;AiBv5CE;;;EAII,yBC2E4D;AlB80ClE;;AiB75CE;;;;EAYM,qBCmE0D;AlBq1ClE;;AK75CE;EYiBM,yBAJsC;AjBo5C9C;;AiBr5CE;;EASQ,yBARoC;AjBy5C9C;;AiB76CE;;;EAII,yBC2E4D;AlBo2ClE;;AiBn7CE;;;;EAYM,qBCmE0D;AlB22ClE;;AKn7CE;EYiBM,yBAJsC;AjB06C9C;;AiB36CE;;EASQ,yBARoC;AjB+6C9C;;AiBn8CE;;;EAII,yBC2E4D;AlB03ClE;;AiBz8CE;;;;EAYM,qBCmE0D;AlBi4ClE;;AKz8CE;EYiBM,yBAJsC;AjBg8C9C;;AiBj8CE;;EASQ,yBARoC;AjBq8C9C;;AiBz9CE;;;EAII,yBC2E4D;AlBg5ClE;;AiB/9CE;;;;EAYM,qBCmE0D;AlBu5ClE;;AK/9CE;EYiBM,yBAJsC;AjBs9C9C;;AiBv9CE;;EASQ,yBARoC;AjB29C9C;;AiB/+CE;;;EAII,yBC2E4D;AlBs6ClE;;AiBr/CE;;;;EAYM,qBCmE0D;AlB66ClE;;AKr/CE;EYiBM,yBAJsC;AjB4+C9C;;AiB7+CE;;EASQ,yBARoC;AjBi/C9C;;AiBrgDE;;;EAII,yBC2E4D;AlB47ClE;;AiB3gDE;;;;EAYM,qBCmE0D;AlBm8ClE;;AK3gDE;EYiBM,yBAJsC;AjBkgD9C;;AiBngDE;;EASQ,yBARoC;AjBugD9C;;AiB3hDE;;;EAII,yBC2E4D;AlBk9ClE;;AiBjiDE;;;;EAYM,qBCmE0D;AlBy9ClE;;AKjiDE;EYiBM,yBAJsC;AjBwhD9C;;AiBzhDE;;EASQ,yBARoC;AjB6hD9C;;AiBjjDE;;;EAII,sCdQS;AH2iDf;;AKhjDE;EYiBM,sCAJsC;AjBuiD9C;;AiBxiDE;;EASQ,sCARoC;AjB4iD9C;;AgBt9CA;EAGM,Wb3GS;Ea4GT,yBbpGY;EaqGZ,qBb2PqD;AH4tC3D;;AgB59CA;EAWM,cb5GY;Ea6GZ,yBblHY;EamHZ,qBblHY;AHukDlB;;AgBh9CA;EACE,Wb3Ha;Ea4Hb,yBbpHgB;AHukDlB;;AgBr9CA;;;EAOI,qBbuOuD;AH6uC3D;;AgB39CA;EAWI,SAAS;AhBo9Cb;;AgB/9CA;EAgBM,2Cb1IS;AH6lDf;;AKxlDE;EW4IM,WbjJO;EakJP,4CblJO;AHkmDf;;AchiDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBk8CvC;EgBv8CG;IASK,SAAS;EhBi8CjB;AACF;;Ac5iDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB88CvC;EgBn9CG;IASK,SAAS;EhB68CjB;AACF;;AcxjDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB09CvC;EgB/9CG;IASK,SAAS;EhBy9CjB;AACF;;AcpkDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBs+CvC;EgB3+CG;IASK,SAAS;EhBq+CjB;AACF;;AgBp/CA;EAOQ,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,iCAAiC;AhBi/CzC;;AgB3/CA;EAcU,SAAS;AhBi/CnB;;AmB9pDA;EACE,cAAc;EACd,WAAW;EACX,mChBoe2H;EgBne3H,yBhBoXkC;ECpP9B,eAAW;Ee7Hf,gBhB8Q+B;EgB7Q/B,gBhBkR+B;EgBjR/B,chBDgB;EgBEhB,sBhBTa;EgBUb,4BAA4B;EAC5B,yBhBPgB;EONd,sBPqOgC;EiBpO9B,wEjB2e4F;AHmsClG;;AoBzqDI;EDLJ;ICMM,gBAAgB;EpB6qDpB;AACF;;AmBprDA;EAsBI,6BAA6B;EAC7B,SAAS;AnBkqDb;;AqBlrDE;EACE,clBAc;EkBCd,sBlBRW;EkBSX,qBlB+csE;EkB9ctE,UAAU;EAKR,gDlBcW;AHmqDjB;;AmBjsDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnBqqDd;;AmBtsDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnBqqDd;;AmBtsDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnBqqDd;;AmBtsDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnBqqDd;;AmBtsDA;EA+BI,chBxBc;EgB0Bd,UAAU;AnBqqDd;;AmBtsDA;EA2CI,yBhBxCc;EgB0Cd,UAAU;AnB8pDd;;AmB1pDA;EAOI,chBhDc;EgBiDd,sBhBxDW;AH+sDf;;AmBlpDA;;EAEE,cAAc;EACd,WAAW;AnBqpDb;;AmB3oDA;EACE,iCAA+D;EAC/D,oCAAkE;EAClE,gBAAgB;EfsCd,kBAAW;EepCb,gBhB0M+B;AHo8CjC;;AmB3oDA;EACE,+BAAkE;EAClE,kCAAqE;Ef+CjE,kBAAW;Ee7Cf,gBhBuI+B;AHugDjC;;AmB3oDA;EACE,gCAAkE;EAClE,mCAAqE;EfwCjE,mBAAW;EetCf,gBhBiI+B;AH6gDjC;;AmBroDA;EACE,cAAc;EACd,WAAW;EACX,qBhB6QmC;EgB5QnC,wBhB4QmC;EgB3QnC,gBAAgB;EAChB,gBhB6K+B;EgB5K/B,chBpGgB;EgBqGhB,6BAA6B;EAC7B,yBAAyB;EACzB,mBAAmC;AnBwoDrC;;AmBlpDA;EAcI,gBAAgB;EAChB,eAAe;AnBwoDnB;;AmB5nDA;EACE,kChBqWqI;EgBpWrI,uBhB8PiC;EC9P7B,mBAAW;EeEf,gBhByF+B;EOhO7B,qBPuO+B;AHgiDnC;;AmB5nDA;EACE,gChB8VqI;EgB7VrI,oBhB2PgC;ECnQ5B,kBAAW;EeUf,gBhBgF+B;EO/N7B,qBPsO+B;AHyiDnC;;AmB3nDA;EAGI,YAAY;AnB4nDhB;;AmBxnDA;EACE,YAAY;AnB2nDd;;AmBnnDA;EACE,mBhBmV0C;AHmyC5C;;AmBnnDA;EACE,cAAc;EACd,mBhBoU4C;AHkzC9C;;AmB9mDA;EACE,aAAa;EACb,eAAe;EACf,kBAA0C;EAC1C,iBAAyC;AnBinD3C;;AmBrnDA;;EAQI,kBAA0C;EAC1C,iBAAyC;AnBknD7C;;AmBzmDA;EACE,kBAAkB;EAClB,cAAc;EACd,qBhByS6C;AHm0C/C;;AmBzmDA;EACE,kBAAkB;EAClB,kBhBqS2C;EgBpS3C,qBhBmS6C;AHy0C/C;;AmB/mDA;EAQI,chB1Mc;AHqzDlB;;AmBvmDA;EACE,gBAAgB;AnB0mDlB;;AmBvmDA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,eAAe;EACf,qBhBsR4C;AHo1C9C;;AmB9mDA;EAQI,gBAAgB;EAChB,aAAa;EACb,uBhBiR4C;EgBhR5C,cAAc;AnB0mDlB;;AqBtzDE;EACE,aAAa;EACb,WAAW;EACX,mBlBkd0C;ECzX1C,cAAW;EiBvFX,clBQa;AHizDjB;;AqBtzDE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBsyBqC;EkBryBrC,iBAAiB;EjB6Ff,mBAAW;EiB3Fb,gBlBiP6B;EkBhP7B,WlBzCW;EkB0CX,wClBNa;EOtCb,sBPqOgC;AHioDpC;;AqBrzDI;EAEE,qBlBbW;EkBgBT,oClB8a2F;EkB7a3F,4PHhBmI;EGiBnI,4BAA4B;EAC5B,2DlB6a6F;EkB5a7F,gElB2awF;AH04ChG;;AqB9zDI;EAaI,qBlBxBS;EkByBT,gDlBzBS;AH80DjB;;AqBn0DI;;;EAmBI,cAAc;ArBszDtB;;AqB/yDI;EAGI,oClBsZ2F;EkBrZ3F,kFlBuZ6F;AHy5CrG;;AqB1yDI;EAEE,qBlBjDW;EkBoDT,sDlBqe0J;EkBpe1J,6gBAAkJ;ArB0yD1J;;AqBhzDI;EAUI,qBlBzDS;EkB0DT,gDlB1DS;AHo2DjB;;AqBrzDI;;;EAgBI,cAAc;ArB2yDtB;;AqBpyDI;;;EAII,cAAc;ArBsyDtB;;AqBhyDI;EAGI,clBnFS;AHo3DjB;;AqBpyDI;;;EAQI,cAAc;ArBkyDtB;;AqB5xDI;EAGI,clBjGS;AH83DjB;;AqBhyDI;EAMM,qBlBpGO;AHk4DjB;;AqBpyDI;;;EAYI,cAAc;ArB8xDtB;;AqB1yDI;EAiBM,qBAAkC;ECpJxC,yBDqJ+C;ArB6xDnD;;AqB/yDI;EAwBM,gDlBtHO;AHi5DjB;;AqBnzDI;EA4BM,qBlB1HO;AHq5DjB;;AqBnxDI;EAGI,qBlBrIS;AHy5DjB;;AqBvxDI;;;EAQI,cAAc;ArBqxDtB;;AqB7xDI;EAaM,qBlB/IO;EkBgJP,gDlBhJO;AHo6DjB;;AqBj7DE;EACE,aAAa;EACb,WAAW;EACX,mBlBkd0C;ECzX1C,cAAW;EiBvFX,clBKa;AH+6DjB;;AqBj7DE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBsyBqC;EkBryBrC,iBAAiB;EjB6Ff,mBAAW;EiB3Fb,gBlBiP6B;EkBhP7B,WlBzCW;EkB0CX,wClBTa;EOnCb,sBPqOgC;AH4vDpC;;AqBh7DI;EAEE,qBlBhBW;EkBmBT,oClB8a2F;EkB7a3F,sSHhBmI;EGiBnI,4BAA4B;EAC5B,2DlB6a6F;EkB5a7F,gElB2awF;AHqgDhG;;AqBz7DI;EAaI,qBlB3BS;EkB4BT,gDlB5BS;AH48DjB;;AqB97DI;;;EAmBI,cAAc;ArBi7DtB;;AqB16DI;EAGI,oClBsZ2F;EkBrZ3F,kFlBuZ6F;AHohDrG;;AqBr6DI;EAEE,qBlBpDW;EkBuDT,sDlBqe0J;EkBpe1J,ujBAAkJ;ArBq6D1J;;AqB36DI;EAUI,qBlB5DS;EkB6DT,gDlB7DS;AHk+DjB;;AqBh7DI;;;EAgBI,cAAc;ArBs6DtB;;AqB/5DI;;;EAII,cAAc;ArBi6DtB;;AqB35DI;EAGI,clBtFS;AHk/DjB;;AqB/5DI;;;EAQI,cAAc;ArB65DtB;;AqBv5DI;EAGI,clBpGS;AH4/DjB;;AqB35DI;EAMM,qBlBvGO;AHggEjB;;AqB/5DI;;;EAYI,cAAc;ArBy5DtB;;AqBr6DI;EAiBM,qBAAkC;ECpJxC,yBDqJ+C;ArBw5DnD;;AqB16DI;EAwBM,gDlBzHO;AH+gEjB;;AqB96DI;EA4BM,qBlB7HO;AHmhEjB;;AqB94DI;EAGI,qBlBxIS;AHuhEjB;;AqBl5DI;;;EAQI,cAAc;ArBg5DtB;;AqBx5DI;EAaM,qBlBlJO;EkBmJP,gDlBnJO;AHkiEjB;;AmBv0DA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;AnB00DrB;;AmB70DA;EASI,WAAW;AnBw0Df;;AcxhEI;EKuMJ;IAeM,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;EnBu0DpB;EmBz1DF;IAuBM,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;EnBq0DpB;EmBh2DF;IAgCM,qBAAqB;IACrB,WAAW;IACX,sBAAsB;EnBm0D1B;EmBr2DF;IAuCM,qBAAqB;EnBi0DzB;EmBx2DF;;IA4CM,WAAW;EnBg0Df;EmB52DF;IAkDM,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,WAAW;IACX,eAAe;EnB6zDnB;EmBn3DF;IAyDM,kBAAkB;IAClB,cAAc;IACd,aAAa;IACb,qBhBwLwC;IgBvLxC,cAAc;EnB6zDlB;EmB13DF;IAiEM,mBAAmB;IACnB,uBAAuB;EnB4zD3B;EmB93DF;IAqEM,gBAAgB;EnB4zDpB;AACF;;AuB/nEA;EACE,qBAAqB;EAErB,gBpBkR+B;EoBjR/B,cpBMgB;EoBLhB,kBAAkB;EAClB,sBAAsB;EACtB,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECyF3C,yBrBsRkC;ECpP9B,eAAW;EoBhCf,gBrBsL+B;EO3R7B,sBPqOgC;EiBpO9B,qIjBob6I;AH2tDnJ;;AoB1oEI;EGLJ;IHMM,gBAAgB;EpB8oEpB;AACF;;AK/oEE;EkBQE,cpBJc;EoBKd,qBAAqB;AvB2oEzB;;AuB1pEA;EAoBI,UAAU;EACV,gDpBSa;AHioEjB;;AuB/pEA;EA2BI,apB6Y6B;AH2vDjC;;AuBznEA;;EAEE,oBAAoB;AvB4nEtB;;AuBnnEE;ECrDA,WrBCa;EmBDX,yBnB8Ba;EqB5Bf,qBrB4Be;AHgpEjB;;AKxqEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBqrE7H;;AwBzqEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBuqEvF;;AwBlqEE;EAEE,WrB1BW;EqB2BX,yBrBEa;EqBDb,qBrBCa;AHmqEjB;;AwB7pEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBysEnN;;AwB1pEI;;EAKI,gDAAiF;AxB0pEzF;;AuBxpEE;ECrDA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB;AH4sElB;;AK7sEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB0tE7H;;AwB9sEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxB4sEvF;;AwBvsEE;EAEE,WrB1BW;EqB2BX,yBrBrBc;EqBsBd,qBrBtBc;AH+tElB;;AwBlsEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB8uEnN;;AwB/rEI;;EAKI,iDAAiF;AxB+rEzF;;AuB7rEE;ECrDA,WrBCa;EmBDX,yBnBqCa;EqBnCf,qBrBmCe;AHmtEjB;;AKlvEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB+vE7H;;AwBnvEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxBivEvF;;AwB5uEE;EAEE,WrB1BW;EqB2BX,yBrBSa;EqBRb,qBrBQa;AHsuEjB;;AwBvuEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBmxEnN;;AwBpuEI;;EAKI,+CAAiF;AxBouEzF;;AuBluEE;ECrDA,WrBCa;EmBDX,yBnBuCa;EqBrCf,qBrBqCe;AHsvEjB;;AKvxEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBoyE7H;;AwBxxEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBsxEvF;;AwBjxEE;EAEE,WrB1BW;EqB2BX,yBrBWa;EqBVb,qBrBUa;AHywEjB;;AwB5wEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBwzEnN;;AwBzwEI;;EAKI,gDAAiF;AxBywEzF;;AuBvwEE;ECrDA,crBUgB;EmBVd,yBnBoCa;EqBlCf,qBrBkCe;AH8xEjB;;AK5zEE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBy0E7H;;AwB7zEE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxB2zEvF;;AwBtzEE;EAEE,crBjBc;EqBkBd,yBrBQa;EqBPb,qBrBOa;AHizEjB;;AwBjzEE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxB61EnN;;AwB9yEI;;EAKI,gDAAiF;AxB8yEzF;;AuB5yEE;ECrDA,WrBCa;EmBDX,yBnBkCa;EqBhCf,qBrBgCe;AHq0EjB;;AKj2EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB82E7H;;AwBl2EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxBg2EvF;;AwB31EE;EAEE,WrB1BW;EqB2BX,yBrBMa;EqBLb,qBrBKa;AHw1EjB;;AwBt1EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBk4EnN;;AwBn1EI;;EAKI,+CAAiF;AxBm1EzF;;AuBj1EE;ECrDA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB;AH04ElB;;AKt4EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBm5E7H;;AwBv4EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBq4EvF;;AwBh4EE;EAEE,crBjBc;EqBkBd,yBrB1Bc;EqB2Bd,qBrB3Bc;AH65ElB;;AwB33EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBu6EnN;;AwBx3EI;;EAKI,iDAAiF;AxBw3EzF;;AuBt3EE;ECrDA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB;AHw6ElB;;AK36EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBw7E7H;;AwB56EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,8CAAiF;AxB06EvF;;AwBr6EE;EAEE,WrB1BW;EqB2BX,yBrBnBc;EqBoBd,qBrBpBc;AH27ElB;;AwBh6EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB48EnN;;AwB75EI;;EAKI,8CAAiF;AxB65EzF;;AuBr5EE;ECDA,crB5Be;EqB6Bf,qBrB7Be;AHu7EjB;;AK/8EE;EmBwDE,WrB7DW;EqB8DX,yBrBjCa;EqBkCb,qBrBlCa;AH67EjB;;AwBx5EE;EAEE,+CrBvCa;AHi8EjB;;AwBv5EE;EAEE,crB5Ca;EqB6Cb,6BAA6B;AxBy5EjC;;AwBt5EE;;EAGE,WrBhFW;EqBiFX,yBrBpDa;EqBqDb,qBrBrDa;AH68EjB;;AwBt5EI;;EAKI,+CrB5DS;AHk9EjB;;AuBr7EE;ECDA,crBnDgB;EqBoDhB,qBrBpDgB;AH8+ElB;;AK/+EE;EmBwDE,WrB7DW;EqB8DX,yBrBxDc;EqByDd,qBrBzDc;AHo/ElB;;AwBx7EE;EAEE,iDrB9Dc;AHw/ElB;;AwBv7EE;EAEE,crBnEc;EqBoEd,6BAA6B;AxBy7EjC;;AwBt7EE;;EAGE,WrBhFW;EqBiFX,yBrB3Ec;EqB4Ed,qBrB5Ec;AHogFlB;;AwBt7EI;;EAKI,iDrBnFU;AHygFlB;;AuBr9EE;ECDA,crBrBe;EqBsBf,qBrBtBe;AHg/EjB;;AK/gFE;EmBwDE,WrB7DW;EqB8DX,yBrB1Ba;EqB2Bb,qBrB3Ba;AHs/EjB;;AwBx9EE;EAEE,+CrBhCa;AH0/EjB;;AwBv9EE;EAEE,crBrCa;EqBsCb,6BAA6B;AxBy9EjC;;AwBt9EE;;EAGE,WrBhFW;EqBiFX,yBrB7Ca;EqB8Cb,qBrB9Ca;AHsgFjB;;AwBt9EI;;EAKI,+CrBrDS;AH2gFjB;;AuBr/EE;ECDA,crBnBe;EqBoBf,qBrBpBe;AH8gFjB;;AK/iFE;EmBwDE,WrB7DW;EqB8DX,yBrBxBa;EqByBb,qBrBzBa;AHohFjB;;AwBx/EE;EAEE,gDrB9Ba;AHwhFjB;;AwBv/EE;EAEE,crBnCa;EqBoCb,6BAA6B;AxBy/EjC;;AwBt/EE;;EAGE,WrBhFW;EqBiFX,yBrB3Ca;EqB4Cb,qBrB5Ca;AHoiFjB;;AwBt/EI;;EAKI,gDrBnDS;AHyiFjB;;AuBrhFE;ECDA,crBtBe;EqBuBf,qBrBvBe;AHijFjB;;AK/kFE;EmBwDE,crBpDc;EqBqDd,yBrB3Ba;EqB4Bb,qBrB5Ba;AHujFjB;;AwBxhFE;EAEE,+CrBjCa;AH2jFjB;;AwBvhFE;EAEE,crBtCa;EqBuCb,6BAA6B;AxByhFjC;;AwBthFE;;EAGE,crBvEc;EqBwEd,yBrB9Ca;EqB+Cb,qBrB/Ca;AHukFjB;;AwBthFI;;EAKI,+CrBtDS;AH4kFjB;;AuBrjFE;ECDA,crBxBe;EqByBf,qBrBzBe;AHmlFjB;;AK/mFE;EmBwDE,WrB7DW;EqB8DX,yBrB7Ba;EqB8Bb,qBrB9Ba;AHylFjB;;AwBxjFE;EAEE,+CrBnCa;AH6lFjB;;AwBvjFE;EAEE,crBxCa;EqByCb,6BAA6B;AxByjFjC;;AwBtjFE;;EAGE,WrBhFW;EqBiFX,yBrBhDa;EqBiDb,qBrBjDa;AHymFjB;;AwBtjFI;;EAKI,+CrBxDS;AH8mFjB;;AuBrlFE;ECDA,crBxDgB;EqByDhB,qBrBzDgB;AHmpFlB;;AK/oFE;EmBwDE,crBpDc;EqBqDd,yBrB7Dc;EqB8Dd,qBrB9Dc;AHypFlB;;AwBxlFE;EAEE,iDrBnEc;AH6pFlB;;AwBvlFE;EAEE,crBxEc;EqByEd,6BAA6B;AxBylFjC;;AwBtlFE;;EAGE,crBvEc;EqBwEd,yBrBhFc;EqBiFd,qBrBjFc;AHyqFlB;;AwBtlFI;;EAKI,iDrBxFU;AH8qFlB;;AuBrnFE;ECDA,crBjDgB;EqBkDhB,qBrBlDgB;AH4qFlB;;AK/qFE;EmBwDE,WrB7DW;EqB8DX,yBrBtDc;EqBuDd,qBrBvDc;AHkrFlB;;AwBxnFE;EAEE,8CrB5Dc;AHsrFlB;;AwBvnFE;EAEE,crBjEc;EqBkEd,6BAA6B;AxBynFjC;;AwBtnFE;;EAGE,WrBhFW;EqBiFX,yBrBzEc;EqB0Ed,qBrB1Ec;AHksFlB;;AwBtnFI;;EAKI,8CrBjFU;AHusFlB;;AuB1oFA;EACE,gBpB8M+B;EoB7M/B,cpB1Ce;EoB2Cf,qBpB6F4C;AHgjF9C;;AKhtFE;EkBsEE,cpB2F8D;EoB1F9D,0BpB2F+C;AHmjFnD;;AuBrpFA;EAYI,0BpBsF+C;EoBrF/C,gBAAgB;AvB6oFpB;;AuB1pFA;EAkBI,cpBjFc;EoBkFd,oBAAoB;AvB4oFxB;;AuBjoFA;ECFE,oBrBqSgC;ECnQ5B,kBAAW;EoBhCf,gBrB0H+B;EO/N7B,qBPsO+B;AHugFnC;;AuBpoFA;ECNE,uBrBgSiC;EC9P7B,mBAAW;EoBhCf,gBrB2H+B;EOhO7B,qBPuO+B;AH6gFnC;;AuBloFA;EACE,cAAc;EACd,WAAW;AvBqoFb;;AuBvoFA;EAMI,kBpBsT+B;AH+0EnC;;AuBhoFA;;;EAII,WAAW;AvBkoFf;;AyBxwFA;ELMM,gCjBsP2C;AHghFjD;;AoBjwFI;EKXJ;ILYM,gBAAgB;EpBqwFpB;AACF;;AyBlxFA;EAII,UAAU;AzBkxFd;;AyB9wFA;EAEI,aAAa;AzBgxFjB;;AyB5wFA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;ELXZ,6BjBuPwC;AHoiF9C;;AoBtxFI;EKGJ;ILFM,gBAAgB;EpB0xFpB;AACF;;A0BtyFA;;;;EAIE,kBAAkB;A1ByyFpB;;A0BtyFA;EACE,mBAAmB;A1ByyFrB;;A2BrxFI;EACE,qBAAqB;EACrB,oBxB0N0C;EwBzN1C,uBxBwN0C;EwBvN1C,WAAW;EAhCf,uBAA8B;EAC9B,qCAA4C;EAC5C,gBAAgB;EAChB,oCAA2C;A3ByzF7C;;A2BpwFI;EACE,cAAc;A3BuwFpB;;A0BjzFA;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,avBkpBsC;EuBjpBtC,aAAa;EACb,WAAW;EACX,gBvBwtBuC;EuBvtBvC,iBAA8B;EAC9B,oBAA4B;EtBiHxB,eAAW;EsB/Gf,cvBXgB;EuBYhB,gBAAgB;EAChB,gBAAgB;EAChB,sBvBvBa;EuBwBb,4BAA4B;EAC5B,qCvBfa;EOZX,sBPqOgC;AH2mFpC;;A0B5yFI;EACE,WAAW;EACX,OAAO;A1B+yFb;;A0B5yFI;EACE,QAAQ;EACR,UAAU;A1B+yFhB;;AcnyFI;EYnBA;IACE,WAAW;IACX,OAAO;E1B0zFX;E0BvzFE;IACE,QAAQ;IACR,UAAU;E1ByzFd;AACF;;Ac9yFI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bq0FX;E0Bl0FE;IACE,QAAQ;IACR,UAAU;E1Bo0Fd;AACF;;AczzFI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bg1FX;E0B70FE;IACE,QAAQ;IACR,UAAU;E1B+0Fd;AACF;;Acp0FI;EYnBA;IACE,WAAW;IACX,OAAO;E1B21FX;E0Bx1FE;IACE,QAAQ;IACR,UAAU;E1B01Fd;AACF;;A0Bp1FA;EAEI,SAAS;EACT,YAAY;EACZ,aAAa;EACb,uBvBqrBuC;AHiqE3C;;A2Br3FI;EACE,qBAAqB;EACrB,oBxB0N0C;EwBzN1C,uBxBwN0C;EwBvN1C,WAAW;EAzBf,aAAa;EACb,qCAA4C;EAC5C,0BAAiC;EACjC,oCAA2C;A3Bk5F7C;;A2Bp2FI;EACE,cAAc;A3Bu2FpB;;A0B71FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,qBvBuqBuC;AHwrE3C;;A2B54FI;EACE,qBAAqB;EACrB,oBxB0N0C;EwBzN1C,uBxBwN0C;EwBvN1C,WAAW;EAlBf,mCAA0C;EAC1C,eAAe;EACf,sCAA6C;EAC7C,wBAA+B;A3Bk6FjC;;A2B33FI;EACE,cAAc;A3B83FpB;;A2B35FI;EDmDE,iBAAiB;A1B42FvB;;A0Bv2FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,sBvBspBuC;AHmtE3C;;A2Bv6FI;EACE,qBAAqB;EACrB,oBxB0N0C;EwBzN1C,uBxBwN0C;EwBvN1C,WAAW;A3B06FjB;;A2B96FI;EAgBI,aAAa;A3Bk6FrB;;A2B/5FM;EACE,qBAAqB;EACrB,qBxBuMwC;EwBtMxC,uBxBqMwC;EwBpMxC,WAAW;EA9BjB,mCAA0C;EAC1C,yBAAgC;EAChC,sCAA6C;A3Bi8F/C;;A2Bh6FI;EACE,cAAc;A3Bm6FpB;;A2B76FM;EDiDA,iBAAiB;A1Bg4FvB;;A0Bz3FA;EAKI,WAAW;EACX,YAAY;A1Bw3FhB;;A0Bn3FA;EE9GE,SAAS;EACT,gBAAmB;EACnB,gBAAgB;EAChB,6BzBCgB;AHo+FlB;;A0Bn3FA;EACE,cAAc;EACd,WAAW;EACX,uBvB0oBwC;EuBzoBxC,WAAW;EACX,gBvB4J+B;EuB3J/B,cvBhHgB;EuBiHhB,mBAAmB;EACnB,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;A1Bs3FX;;AK1+FE;EqBmIE,cvB2mBqD;EuB1mBrD,qBAAqB;EJ9IrB,yBnBEc;AHw/FlB;;A0Bt4FA;EAgCI,WvBnJW;EuBoJX,qBAAqB;EJrJrB,yBnB8Ba;AHk+FjB;;A0B54FA;EAuCI,cvBpJc;EuBqJd,oBAAoB;EACpB,6BAA6B;A1By2FjC;;A0Bj2FA;EACE,cAAc;A1Bo2FhB;;A0Bh2FA;EACE,cAAc;EACd,sBvBqlBwC;EuBplBxC,gBAAgB;EtBzCZ,mBAAW;EsB2Cf,cvBxKgB;EuByKhB,mBAAmB;A1Bm2FrB;;A0B/1FA;EACE,cAAc;EACd,uBvB2kBwC;EuB1kBxC,cvB7KgB;AH+gGlB;;A6B5hGA;;EAEE,kBAAkB;EAClB,oBAAoB;EACpB,sBAAsB;A7B+hGxB;;A6BniGA;;EAOI,kBAAkB;EAClB,cAAc;A7BiiGlB;;AKhiGE;;EwBII,UAAU;A7BiiGhB;;A6B9iGA;;;;EAkBM,UAAU;A7BmiGhB;;A6B7hGA;EACE,aAAa;EACb,eAAe;EACf,2BAA2B;A7BgiG7B;;A6BniGA;EAMI,WAAW;A7BiiGf;;A6B7hGA;;EAII,iB1B8L6B;AHg2FjC;;A6BliGA;;EnBhBI,0BmB0B8B;EnBzB9B,6BmByB8B;A7B8hGlC;;A6BxiGA;;EnBFI,yBmBiB6B;EnBhB7B,4BmBgB6B;A7B+hGjC;;A6B/gGA;EACE,wBAAmC;EACnC,uBAAkC;A7BkhGpC;;A6BphGA;;;EAOI,cAAc;A7BmhGlB;;A6BhhGE;EACE,eAAe;A7BmhGnB;;A6B/gGA;EACE,uBAAsC;EACtC,sBAAqC;A7BkhGvC;;A6B/gGA;EACE,sBAAsC;EACtC,qBAAqC;A7BkhGvC;;A6B9/FA;EACE,sBAAsB;EACtB,uBAAuB;EACvB,uBAAuB;A7BigGzB;;A6BpgGA;;EAOI,WAAW;A7BkgGf;;A6BzgGA;;EAYI,gB1B6G6B;AHq5FjC;;A6B9gGA;;EnBlFI,6BmBoG+B;EnBnG/B,4BmBmG+B;A7BkgGnC;;A6BphGA;;EnBhGI,yBmBuH4B;EnBtH5B,0BmBsH4B;A7BmgGhC;;A6Bl/FA;;EAGI,gBAAgB;A7Bo/FpB;;A6Bv/FA;;;;EAOM,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;A7Bu/F1B;;A8BhpGA;EACE,kBAAkB;EAClB,aAAa;EACb,eAAe;EACf,oBAAoB;EACpB,WAAW;A9BmpGb;;A8BxpGA;;;;EAWI,kBAAkB;EAClB,cAAc;EAGd,SAAS;EACT,gBAAgB;A9BkpGpB;;A8BlqGA;;;;;;;;;;;;EAqBM,iB3B4M2B;AHg9FjC;;A8BjrGA;;;EA6BI,UAAU;A9B0pGd;;A8BvrGA;EAkCI,UAAU;A9BypGd;;A8B3rGA;;EpBeI,0BoBwBmD;EpBvBnD,6BoBuBmD;A9B0pGvD;;A8BjsGA;;EpB6BI,yBoBWmD;EpBVnD,4BoBUmD;A9B+pGvD;;A8BvsGA;EA8CI,aAAa;EACb,mBAAmB;A9B6pGvB;;A8B5sGA;;EpBeI,0BoBmC6E;EpBlC7E,6BoBkC6E;A9BgqGjF;;A8BltGA;EpB6BI,yBoBsBsE;EpBrBtE,4BoBqBsE;A9BoqG1E;;A8BzpGA;;EAEE,aAAa;A9B4pGf;;A8B9pGA;;EAQI,kBAAkB;EAClB,UAAU;A9B2pGd;;A8BpqGA;;EAYM,UAAU;A9B6pGhB;;A8BzqGA;;;;;;;;EAoBI,iB3B+I6B;AHihGjC;;A8B5pGA;EAAuB,kB3B2IU;AHqhGjC;;A8B/pGA;EAAsB,iB3B0IW;AHyhGjC;;A8B3pGA;EACE,aAAa;EACb,mBAAmB;EACnB,yB3BsRkC;E2BrRlC,gBAAgB;E1BiCZ,eAAW;E0B/Bf,gB3BgL+B;E2B/K/B,gB3BoL+B;E2BnL/B,c3B/FgB;E2BgGhB,kBAAkB;EAClB,mBAAmB;EACnB,yB3BvGgB;E2BwGhB,yB3BtGgB;EONd,sBPqOgC;AHsiGpC;;A8B3qGA;;EAkBI,aAAa;A9B8pGjB;;A8BppGA;;EAEE,gC3B4WqI;AH2yFvI;;A8BppGA;;;;;;EAME,oB3BiQgC;ECnQ5B,kBAAW;E0BIf,gB3BsF+B;EO/N7B,qBPsO+B;AH2jGnC;;A8BppGA;;EAEE,kC3B0VqI;AH6zFvI;;A8BppGA;;;;;;EAME,uB3B2OiC;EC9P7B,mBAAW;E0BqBf,gB3BsE+B;EOhO7B,qBPuO+B;AH2kGnC;;A8BppGA;;EAEE,sBAA0E;A9BupG5E;;A8B5oGA;;;;;;EpB3JI,0BoBiK4B;EpBhK5B,6BoBgK4B;A9BgpGhC;;A8B7oGA;;;;;;EpBtJI,yBoB4J2B;EpB3J3B,4BoB2J2B;A9BipG/B;;A+Bv0GA;EACE,kBAAkB;EAClB,cAAc;EACd,kBAA+C;EAC/C,oBAAqE;A/B00GvE;;A+Bv0GA;EACE,oBAAoB;EACpB,kB5Bof0C;AHs1F5C;;A+Bv0GA;EACE,kBAAkB;EAClB,WAAW;EACX,UAAU;A/B00GZ;;A+B70GA;EAMI,W5BpBW;E4BqBX,qB5BQa;EmB9Bb,yBnB8Ba;AHo0GjB;;A+Bn1GA;EAiBM,gD5BFW;AHw0GjB;;A+Bv1GA;EAsBI,qB5BobsE;AHi5F1E;;A+B31GA;EA0BI,W5BxCW;E4ByCX,yB5B+e8E;E4B9e9E,qB5B8e8E;AHu1FlF;;A+Bj2GA;EAoCM,c5B5CY;AH62GlB;;A+Br2GA;EAuCQ,yB5BnDU;AHq3GlB;;A+BxzGA;EACE,kBAAkB;EAClB,gBAAgB;EAEhB,mBAAmB;A/B0zGrB;;A+B9zGA;EAQI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5BsbwC;E4BrbxC,Y5BqbwC;E4BpbxC,oBAAoB;EACpB,WAAW;EACX,sB5B/EW;E4BgFX,yB5BgJ6B;AH0qGjC;;A+B30GA;EAuBI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5BuawC;E4BtaxC,Y5BsawC;E4BraxC,WAAW;EACX,mCAAgE;A/BwzGpE;;A+B/yGA;ErBxGI,sBPqOgC;AHsrGpC;;A+BnzGA;EAOM,6MbxEqI;AlBw3G3I;;A+BvzGA;EAaM,qB5BtFW;EmB9Bb,yBnB8Ba;AHq4GjB;;A+B5zGA;EAkBM,0JbnFqI;AlBi4G3I;;A+Bh0GA;EAwBM,wC5BjGW;AH64GjB;;A+Bp0GA;EA2BM,wC5BpGW;AHi5GjB;;A+BpyGA;EAGI,kB5BwZ+C;AH64FnD;;A+BxyGA;EAQM,uJb7GqI;AlBi5G3I;;A+B5yGA;EAcM,wC5B3HW;AH65GjB;;A+BxxGA;EACE,qBAA2D;A/B2xG7D;;A+B5xGA;EAKM,cAAqD;EACrD,c5BgY+E;E4B/X/E,mBAAmB;EAEnB,qB5B8X4E;AH45FlF;;A+BnyGA;EAaM,wBAA0I;EAC1I,0BAA+G;EAC/G,uB5ByXiI;E4BxXjI,wB5BwXiI;E4BvXjI,yB5B9KY;E4BgLZ,qB5BoX4E;EiB1iB5E,iJjB6f+H;EiB7f/H,yIjB6f+H;EiB7f/H,8KjB6f+H;AHm9FrI;;AoB38GI;EW8JJ;IX7JM,gBAAgB;EpB+8GpB;AACF;;A+BnzGA;EA0BM,sB5B5LS;E4B6LT,sCAA4E;EAA5E,8BAA4E;A/B6xGlF;;A+BxzGA;EAiCM,wC5BtKW;AHi8GjB;;A+B/wGA;EACE,qBAAqB;EACrB,WAAW;EACX,mC5BoR2H;E4BnR3H,0C5BoKkC;ECpP9B,eAAW;E2BmFf,gB5B8D+B;E4B7D/B,gB5BkE+B;E4BjE/B,c5BjNgB;E4BkNhB,sBAAsB;EACtB,6M5BiWmI;E4BhWnI,sB5B3Na;E4B4Nb,yB5BxNgB;EONd,sBPqOgC;E4BJlC,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/BgxGlB;;A+BhyGA;EAmBI,qB5BsPsE;E4BrPtE,UAAU;EAIR,gD5B1MW;AHw9GjB;;A+BtyGA;EAiCM,c5BzOY;E4B0OZ,sB5BjPS;AH0/Gf;;A+B3yGA;EAwCI,YAAY;EACZ,sB5B+HgC;E4B9HhC,sBAAsB;A/BuwG1B;;A+BjzGA;EA8CI,c5BvPc;E4BwPd,yB5B5Pc;AHmgHlB;;A+BtzGA;EAoDI,aAAa;A/BswGjB;;A+BlwGA;EACE,kC5B+NqI;E4B9NrI,oB5BuHkC;E4BtHlC,uB5BsHkC;E4BrHlC,oB5BsHiC;EC9P7B,mBAAW;AJ84GjB;;A+BlwGA;EACE,gC5BwNqI;E4BvNrI,mB5BoHiC;E4BnHjC,sB5BmHiC;E4BlHjC,kB5BmHgC;ECnQ5B,kBAAW;AJs5GjB;;A+B7vGA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mC5BsM2H;E4BrM3H,gBAAgB;A/BgwGlB;;A+B7vGA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mC5B8L2H;E4B7L3H,SAAS;EACT,UAAU;A/BgwGZ;;A+BtwGA;EASI,qB5B2KsE;E4B1KtE,gD5BjRa;AHkhHjB;;A+B3wGA;EAgBI,yB5BlTc;AHijHlB;;A+B/wGA;EAqBM,iB5BiUQ;AH67Fd;;A+BnxGA;EA0BI,0BAA0B;A/B6vG9B;;A+BzvGA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mC5B8J2H;E4B7J3H,yB5B8CkC;E4B5ClC,gB5BvD+B;E4BwD/B,gB5BnD+B;E4BoD/B,c5BtUgB;E4BuUhB,sB5B9Ua;E4B+Ub,yB5B3UgB;EONd,sBPqOgC;AHw2GpC;;A+BzwGA;EAkBI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,cAAc;EACd,6B5BwI+F;E4BvI/F,yB5B4BgC;E4B3BhC,gB5BnE6B;E4BoE7B,c5BtVc;E4BuVd,iBAAiB;ET/VjB,yBnBGc;E4B8Vd,oBAAoB;ErBlWpB,kCqBmWgF;A/B2vGpF;;A+BjvGA;EACE,WAAW;EACX,2BAA+F;EAC/F,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/BovGlB;;A+BzvGA;EAQI,aAAa;A/BqvGjB;;A+B7vGA;EAY8B,gE5B1Vb;AH+kHjB;;A+BjwGA;EAa8B,gE5B3Vb;AHmlHjB;;A+BrwGA;EAc8B,gE5B5Vb;AHulHjB;;A+BzwGA;EAkBI,SAAS;A/B2vGb;;A+B7wGA;EAsBI,W5B0N6C;E4BzN7C,Y5ByN6C;E4BxN7C,oBAAyE;ETpYzE,yBnB8Ba;E4BwWb,S5ByN0C;EOhmB1C,mBPimB6C;EiBhmB3C,4GjB6f+H;E4BnHjI,wBAAgB;EAAhB,gBAAgB;A/B0vGpB;;AoB/nHI;EWuWJ;IXtWM,gBAAgB;EpBmoHpB;AACF;;A+B9xGA;ET5WI,yBnBomB2E;AH0iG/E;;A+BlyGA;EAsCI,W5BmMoC;E4BlMpC,c5BmMqC;E4BlMrC,kBAAkB;EAClB,e5BkMuC;E4BjMvC,yB5BlZc;E4BmZd,yBAAyB;ErBxZzB,mBP0lBoC;AH+jGxC;;A+B5yGA;EAiDI,W5B+L6C;E4B9L7C,Y5B8L6C;EmB5lB7C,yBnB8Ba;E4BkYb,S5B+L0C;EOhmB1C,mBPimB6C;EiBhmB3C,4GjB6f+H;E4BzFjI,qBAAgB;EAAhB,gBAAgB;A/B8vGpB;;AoB7pHI;EWuWJ;IXtWM,gBAAgB;EpBiqHpB;AACF;;A+B5zGA;ET5WI,yBnBomB2E;AHwkG/E;;A+Bh0GA;EAgEI,W5ByKoC;E4BxKpC,c5ByKqC;E4BxKrC,kBAAkB;EAClB,e5BwKuC;E4BvKvC,yB5B5ac;E4B6ad,yBAAyB;ErBlbzB,mBP0lBoC;AH6lGxC;;A+B10GA;EA2EI,W5BqK6C;E4BpK7C,Y5BoK6C;E4BnK7C,aAAa;EACb,oB5B7D+B;E4B8D/B,mB5B9D+B;EmB7X/B,yBnB8Ba;E4B+Zb,S5BkK0C;EOhmB1C,mBPimB6C;EiBhmB3C,4GjB6f+H;E4B5DjI,gBAAgB;A/BkwGpB;;AoB9rHI;EWuWJ;IXtWM,gBAAgB;EpBksHpB;AACF;;A+B71GA;ET5WI,yBnBomB2E;AHymG/E;;A+Bj2GA;EA6FI,W5B4IoC;E4B3IpC,c5B4IqC;E4B3IrC,kBAAkB;EAClB,e5B2IuC;E4B1IvC,6BAA6B;EAC7B,yBAAyB;EACzB,oBAA4C;A/BwwGhD;;A+B32GA;EAwGI,yB5Bhdc;EOLd,mBP0lBoC;AHmoGxC;;A+Bh3GA;EA6GI,kBAAkB;EAClB,yB5Btdc;EOLd,mBP0lBoC;AHyoGxC;;A+Bt3GA;EAoHM,yB5B1dY;AHguHlB;;A+B13GA;EAwHM,eAAe;A/BswGrB;;A+B93GA;EA4HM,yB5BleY;AHwuHlB;;A+Bl4GA;EAgIM,eAAe;A/BswGrB;;A+Bt4GA;EAoIM,yB5B1eY;AHgvHlB;;A+BjwGA;;;EXrfM,4GjB6f+H;AH+vGrI;;AoBvvHI;EWgfJ;;;IX/eM,gBAAgB;EpB6vHpB;AACF;;AgCrwHA;EACE,aAAa;EACb,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AhCwwHlB;;AgCrwHA;EACE,cAAc;EACd,oB7BmqBsC;AHqmGxC;;AKvwHE;E2BEE,qBAAqB;AhCywHzB;;AgC9wHA;EAUI,c7BVc;E6BWd,oBAAoB;EACpB,eAAe;AhCwwHnB;;AgChwHA;EACE,gC7BxBgB;AH2xHlB;;AgCpwHA;EAII,mB7BkM6B;AHkkHjC;;AgCxwHA;EAQI,6BAAgD;EtB3BhD,+BP4NgC;EO3NhC,gCP2NgC;AHqkHpC;;AK/xHE;E2B6BI,qC7BnCY;AHyyHlB;;AgClxHA;EAgBM,c7BpCY;E6BqCZ,6BAA6B;EAC7B,yBAAyB;AhCswH/B;;AgCxxHA;;EAwBI,c7B3Cc;E6B4Cd,sB7BnDW;E6BoDX,kC7BpDW;AHyzHf;;AgC/xHA;EA+BI,gB7BuK6B;EOzN7B,yBsBoD4B;EtBnD5B,0BsBmD4B;AhCowHhC;;AgC3vHA;EtBtEI,sBPqOgC;AHgmHpC;;AgC/vHA;;EAOI,W7B3EW;E6B4EX,yB7B/Ca;AH4yHjB;;AgCpvHA;EAEI,cAAc;EACd,kBAAkB;AhCsvHtB;;AgClvHA;EAEI,aAAa;EACb,YAAY;EACZ,kBAAkB;AhCovHtB;;AgC3uHA;EAEI,aAAa;AhC6uHjB;;AgC/uHA;EAKI,cAAc;AhC8uHlB;;AiCl1HA;EACE,kBAAkB;EAClB,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,8BAA8B;EAC9B,oB9B0GW;AH2uHb;;AiC31HA;;EAYI,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,8BAA8B;AjCo1HlC;;AiC30HA;EACE,qBAAqB;EACrB,sB9BqqB+E;E8BpqB/E,yB9BoqB+E;E8BnqB/E,kB9BoFW;ECSP,kBAAW;E6B3Ff,oBAAoB;EACpB,mBAAmB;AjC80HrB;;AK92HE;E4BmCE,qBAAqB;AjC+0HzB;;AiCt0HA;EACE,aAAa;EACb,sBAAsB;EACtB,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AjCy0HlB;;AiC90HA;EAQI,gBAAgB;EAChB,eAAe;AjC00HnB;;AiCn1HA;EAaI,gBAAgB;EAChB,WAAW;AjC00Hf;;AiCj0HA;EACE,qBAAqB;EACrB,mB9B4lBuC;E8B3lBvC,sB9B2lBuC;AHyuGzC;;AiCxzHA;EACE,gBAAgB;EAChB,YAAY;EAGZ,mBAAmB;AjCyzHrB;;AiCrzHA;EACE,wB9BumBwC;ECzkBpC,kBAAW;E6B5Bf,cAAc;EACd,6BAA6B;EAC7B,6BAAuC;EvB3GrC,sBPqOgC;AH+rHpC;;AKz5HE;E4BoGE,qBAAqB;AjCyzHzB;;AiCnzHA;EACE,qBAAqB;EACrB,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,WAAW;EACX,mCAAmC;EACnC,0BAA0B;AjCszH5B;;Ac92HI;EmBkEC;;IAIK,gBAAgB;IAChB,eAAe;EjC8yHvB;AACF;;Acn4HI;EmB+EA;IAUI,qBAAqB;IACrB,2BAA2B;EjC+yHjC;EiC1zHG;IAcK,mBAAmB;EjC+yH3B;EiC7zHG;IAiBO,kBAAkB;EjC+yH5B;EiCh0HG;IAqBO,qB9B0iB6B;I8BziB7B,oB9ByiB6B;EHqwGvC;EiCp0HG;;IA6BK,iBAAiB;EjC2yHzB;EiCx0HG;IAiCK,wBAAwB;IAGxB,gBAAgB;EjCwyHxB;EiC50HG;IAwCK,aAAa;EjCuyHrB;AACF;;Acl5HI;EmBkEC;;IAIK,gBAAgB;IAChB,eAAe;EjCk1HvB;AACF;;Acv6HI;EmB+EA;IAUI,qBAAqB;IACrB,2BAA2B;EjCm1HjC;EiC91HG;IAcK,mBAAmB;EjCm1H3B;EiCj2HG;IAiBO,kBAAkB;EjCm1H5B;EiCp2HG;IAqBO,qB9B0iB6B;I8BziB7B,oB9ByiB6B;EHyyGvC;EiCx2HG;;IA6BK,iBAAiB;EjC+0HzB;EiC52HG;IAiCK,wBAAwB;IAGxB,gBAAgB;EjC40HxB;EiCh3HG;IAwCK,aAAa;EjC20HrB;AACF;;Act7HI;EmBkEC;;IAIK,gBAAgB;IAChB,eAAe;EjCs3HvB;AACF;;Ac38HI;EmB+EA;IAUI,qBAAqB;IACrB,2BAA2B;EjCu3HjC;EiCl4HG;IAcK,mBAAmB;EjCu3H3B;EiCr4HG;IAiBO,kBAAkB;EjCu3H5B;EiCx4HG;IAqBO,qB9B0iB6B;I8BziB7B,oB9ByiB6B;EH60GvC;EiC54HG;;IA6BK,iBAAiB;EjCm3HzB;EiCh5HG;IAiCK,wBAAwB;IAGxB,gBAAgB;EjCg3HxB;EiCp5HG;IAwCK,aAAa;EjC+2HrB;AACF;;Ac19HI;EmBkEC;;IAIK,gBAAgB;IAChB,eAAe;EjC05HvB;AACF;;Ac/+HI;EmB+EA;IAUI,qBAAqB;IACrB,2BAA2B;EjC25HjC;EiCt6HG;IAcK,mBAAmB;EjC25H3B;EiCz6HG;IAiBO,kBAAkB;EjC25H5B;EiC56HG;IAqBO,qB9B0iB6B;I8BziB7B,oB9ByiB6B;EHi3GvC;EiCh7HG;;IA6BK,iBAAiB;EjCu5HzB;EiCp7HG;IAiCK,wBAAwB;IAGxB,gBAAgB;EjCo5HxB;EiCx7HG;IAwCK,aAAa;EjCm5HrB;AACF;;AiCj8HA;EAeQ,qBAAqB;EACrB,2BAA2B;AjCs7HnC;;AiCt8HA;;EASU,gBAAgB;EAChB,eAAe;AjCk8HzB;;AiC58HA;EAmBU,mBAAmB;AjC67H7B;;AiCh9HA;EAsBY,kBAAkB;AjC87H9B;;AiCp9HA;EA0BY,qB9B0iB6B;E8BziB7B,oB9ByiB6B;AHq5GzC;;AiCz9HA;;EAkCU,iBAAiB;AjC47H3B;;AiC99HA;EAsCU,wBAAwB;EAGxB,gBAAgB;AjC07H1B;;AiCn+HA;EA6CU,aAAa;AjC07HvB;;AiC76HA;EAEI,yB9BjLW;AHgmIf;;AKjmIE;E4BqLI,yB9BpLS;AHomIf;;AiCr7HA;EAWM,yB9B1LS;AHwmIf;;AKzmIE;E4B8LM,yB9B7LO;AH4mIf;;AiC77HA;EAkBQ,yB9BjMO;AHgnIf;;AiCj8HA;;;;EA0BM,yB9BzMS;AHunIf;;AiCx8HA;EA+BI,yB9B9MW;E8B+MX,gC9B/MW;AH4nIf;;AiC78HA;EAoCI,wP9B8fsR;AH+6G1R;;AiCj9HA;EAwCI,yB9BvNW;AHooIf;;AiCr9HA;EA0CM,yB9BzNS;AHwoIf;;AKzoIE;E4B6NM,yB9B5NO;AH4oIf;;AiCz6HA;EAEI,W9B/OW;AH0pIf;;AKjpIE;E4ByOI,W9BlPS;AH8pIf;;AiCj7HA;EAWM,+B9BxPS;AHkqIf;;AKzpIE;E4BkPM,gC9B3PO;AHsqIf;;AiCz7HA;EAkBQ,gC9B/PO;AH0qIf;;AiC77HA;;;;EA0BM,W9BvQS;AHirIf;;AiCp8HA;EA+BI,+B9B5QW;E8B6QX,sC9B7QW;AHsrIf;;AiCz8HA;EAoCI,8P9BmcqR;AHs+GzR;;AiC78HA;EAwCI,+B9BrRW;AH8rIf;;AiCj9HA;EA0CM,W9BvRS;AHksIf;;AKzrIE;E4BiRM,W9B1RO;AHssIf;;AkCzsIA;EACE,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,YAAY;EACZ,qBAAqB;EACrB,sB/BHa;E+BIb,2BAA2B;EAC3B,sC/BKa;EOZX,sBPqOgC;AH++HpC;;AkCrtIA;EAYI,eAAe;EACf,cAAc;AlC6sIlB;;AkC1tIA;ExBUI,+BP4NgC;EO3NhC,gCP2NgC;AHy/HpC;;AkC/tIA;ExBwBI,mCP8MgC;EO7MhC,kCP6MgC;AH8/HpC;;AkCvsIA;EAGE,cAAc;EACd,gB/BgxByC;AHw7G3C;;AkCpsIA;EACE,sB/B0wBwC;AH67G1C;;AkCpsIA;EACE,qBAA+B;EAC/B,gBAAgB;AlCusIlB;;AkCpsIA;EACE,gBAAgB;AlCusIlB;;AK9uIE;E6B4CE,qBAAqB;AlCssIzB;;AkCxsIA;EAMI,oB/ByvBuC;AH68G3C;;AkC9rIA;EACE,wB/BgvByC;E+B/uBzC,gBAAgB;EAEhB,qC/BvDa;E+BwDb,6C/BxDa;AHwvIf;;AkCrsIA;ExB/DI,0DwBuE8E;AlCisIlF;;AkCzsIA;EAaM,aAAa;AlCgsInB;;AkC3rIA;EACE,wB/B8tByC;E+B7tBzC,qC/BvEa;E+BwEb,0C/BxEa;AHswIf;;AkCjsIA;ExBjFI,0DPozBoF;AHk+GxF;;AkCtrIA;EACE,uBAAiC;EACjC,uB/B6sBwC;E+B5sBxC,sBAAgC;EAChC,gBAAgB;AlCyrIlB;;AkCtrIA;EACE,uBAAiC;EACjC,sBAAgC;AlCyrIlC;;AkCrrIA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,gB/BusByC;AHi/G3C;;AkCrrIA;EACE,WAAW;ExBvHT,kCPozBoF;AH4/GxF;;AkCprIA;EACE,WAAW;ExBpHT,2CP2yBoF;EO1yBpF,4CP0yBoF;AHkgHxF;;AkCrrIA;EACE,WAAW;ExB3GT,+CP6xBoF;EO5xBpF,8CP4xBoF;AHwgHxF;;AkCnrIA;EACE,aAAa;EACb,sBAAsB;AlCsrIxB;;AkCxrIA;EAKI,mB/B8qBsD;AHygH1D;;Ac9wII;EoBkFJ;IASI,mBAAmB;IACnB,mB/ByqBsD;I+BxqBtD,kB/BwqBsD;EHghHxD;EkCnsIF;IAcM,aAAa;IAEb,YAAY;IACZ,sBAAsB;IACtB,kB/BiqBoD;I+BhqBpD,gBAAgB;IAChB,iB/B+pBoD;EHwhHxD;AACF;;AkC9qIA;EACE,aAAa;EACb,sBAAsB;AlCirIxB;;AkCnrIA;EAOI,mB/B8oBsD;AHkiH1D;;AcvyII;EoBgHJ;IAWI,mBAAmB;ElCirIrB;EkC5rIF;IAgBM,YAAY;IACZ,gBAAgB;ElC+qIpB;EkChsIF;IAoBQ,cAAc;IACd,cAAc;ElC+qIpB;EkCpsIF;IxBvJI,0BwBkLoC;IxBjLpC,6BwBiLoC;ElC6qItC;EkCxsIF;;IAgCY,0BAA0B;ElC4qIpC;EkC5sIF;;IAqCY,6BAA6B;ElC2qIvC;EkChtIF;IxBzII,yBwBmLmC;IxBlLnC,4BwBkLmC;ElC0qIrC;EkCptIF;;IA+CY,yBAAyB;ElCyqInC;EkCxtIF;;IAoDY,4BAA4B;ElCwqItC;AACF;;AkC5pIA;EAEI,sB/BqkBsC;AHylH1C;;Acj1II;EoBiLJ;IAMI,uB/BilBiC;I+BjlBjC,oB/BilBiC;I+BjlBjC,e/BilBiC;I+BhlBjC,2B/BilBuC;I+BjlBvC,wB/BilBuC;I+BjlBvC,mB/BilBuC;I+BhlBvC,UAAU;IACV,SAAS;ElC+pIX;EkCxqIF;IAYM,qBAAqB;IACrB,WAAW;ElC+pIf;AACF;;AkCtpIA;EAEI,gBAAgB;AlCwpIpB;;AkC1pIA;ExB/PI,gBwBqQ4B;AlCwpIhC;;AkC9pIA;EAUQ,gBAAgB;ExBzQpB,gBwB0Q4B;AlCwpIhC;;AkCnqIA;EAgBM,gBAAgB;ExBxPlB,6BwByPiC;ExBxPjC,4BwBwPiC;AlCwpIrC;;AkCzqIA;ExBtPI,yBwB2Q8B;ExB1Q9B,0BwB0Q8B;AlCypIlC;;AkC9qIA;EAyBM,mB/BtD2B;AH+sIjC;;AmCt7IA;EACE,aAAa;EACb,eAAe;EACf,qBhCqgCsC;EgCpgCtC,mBhCugCsC;EgCtgCtC,gBAAgB;EAChB,yBhCGgB;EOJd,sBPqOgC;AHstIpC;;AmCt7IA;EAGI,oBhC4/BqC;AH27GzC;;AmC17IA;EAMM,qBAAqB;EACrB,qBhCw/BmC;EgCv/BnC,chCLY;EgCMZ,YhC6/BuC;AH27G7C;;AmCj8IA;EAoBI,0BAA0B;AnCi7I9B;;AmCr8IA;EAwBI,qBAAqB;AnCi7IzB;;AmCz8IA;EA4BI,chCzBc;AH08IlB;;AoCv9IA;EACE,aAAa;E7BGb,eAAe;EACf,gBAAgB;EGAd,sBPqOgC;AHovIpC;;AoCx9IA;EACE,kBAAkB;EAClB,cAAc;EACd,uBjCswBwC;EiCrwBxC,iBjC6N+B;EiC5N/B,iBjCywBsC;EiCxwBtC,cjCwBe;EiCvBf,sBjCNa;EiCOb,yBjCJgB;AH+9IlB;;AoCn+IA;EAWI,UAAU;EACV,cjC2J8D;EiC1J9D,qBAAqB;EACrB,yBjCXc;EiCYd,qBjCXc;AHu+IlB;;AoC3+IA;EAmBI,UAAU;EACV,UjCkwBiC;EiCjwBjC,gDjCSa;AHm9IjB;;AoCx9IA;EAGM,cAAc;E1BChB,+BPuMgC;EOtMhC,kCPsMgC;AHmxIpC;;AoC99IA;E1BVI,gCPqNgC;EOpNhC,mCPoNgC;AHwxIpC;;AoCn+IA;EAcI,UAAU;EACV,WjCvCW;EiCwCX,yBjCXa;EiCYb,qBjCZa;AHq+IjB;;AoC1+IA;EAqBI,cjCvCc;EiCwCd,oBAAoB;EAEpB,YAAY;EACZ,sBjCjDW;EiCkDX,qBjC/Cc;AHugJlB;;AqC9gJE;EACE,uBlC+wBsC;ECzoBpC,kBAAW;EiCpIb,gBlC8N6B;AHmzIjC;;AqC5gJM;E3BwBF,8BPwM+B;EOvM/B,iCPuM+B;AHizInC;;AqC5gJM;E3BKF,+BPsN+B;EOrN/B,kCPqN+B;AHszInC;;AqC9hJE;EACE,uBlC6wBqC;ECvoBnC,mBAAW;EiCpIb,gBlC+N6B;AHk0IjC;;AqC5hJM;E3BwBF,8BPyM+B;EOxM/B,iCPwM+B;AHg0InC;;AqC5hJM;E3BKF,+BPuN+B;EOtN/B,kCPsN+B;AHq0InC;;AsC5iJA;EACE,qBAAqB;EACrB,qBnC64BsC;EC1xBpC,cAAW;EkCjHb,gBnCmR+B;EmClR/B,cAAc;EACd,WnCJa;EmCKb,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BTtB,sBPqOgC;AHo1IpC;;AsCzjJA;EAcI,aAAa;AtC+iJjB;;AsC1iJA;EACE,kBAAkB;EAClB,SAAS;AtC6iJX;;AuCvkJA;EACE,kBAAoD;EACpD,mBpC2yBsC;EoCzyBtC,yBpCKgB;EOJd,qBPsO+B;AHm2InC;;AclhJI;EyB5DJ;IAQI,kBpCqyBoC;EHsyHtC;AACF;;AuCxkJA;EACE,gBAAgB;EAChB,eAAe;E7BTb,gB6BUsB;AvC2kJ1B;;AwCtlJA;EACE,kBAAkB;EAClB,wBrC67ByC;EqC57BzC,mBrC67BsC;EqC57BtC,6BAA6C;E9BH3C,sBPqOgC;AHw3IpC;;AwCrlJA;EAEE,cAAc;AxCulJhB;;AwCnlJA;EACE,gBrCwQ+B;AH80IjC;;AwC9kJA;EACE,mBAAsD;AxCilJxD;;AwCllJA;EAKI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,wBrC+5BuC;EqC95BvC,cAAc;AxCilJlB;;AwCvkJE;EC9CA,cvBmFgE;EI9E9D,yBJ8E8D;EuBjFhE,qBvBiFgE;AlBwiJlE;;AyCvnJE;EACE,cAA0B;AzC0nJ9B;;AwCjlJE;EC9CA,cvBmFgE;EI9E9D,yBJ8E8D;EuBjFhE,qBvBiFgE;AlBkjJlE;;AyCjoJE;EACE,cAA0B;AzCooJ9B;;AwC3lJE;EC9CA,cvBmFgE;EI9E9D,yBJ8E8D;EuBjFhE,qBvBiFgE;AlB4jJlE;;AyC3oJE;EACE,cAA0B;AzC8oJ9B;;AwCrmJE;EC9CA,cvBmFgE;EI9E9D,yBJ8E8D;EuBjFhE,qBvBiFgE;AlBskJlE;;AyCrpJE;EACE,cAA0B;AzCwpJ9B;;AwC/mJE;EC9CA,cvBmFgE;EI9E9D,yBJ8E8D;EuBjFhE,qBvBiFgE;AlBglJlE;;AyC/pJE;EACE,cAA0B;AzCkqJ9B;;AwCznJE;EC9CA,cvBmFgE;EI9E9D,yBJ8E8D;EuBjFhE,qBvBiFgE;AlB0lJlE;;AyCzqJE;EACE,cAA0B;AzC4qJ9B;;AwCnoJE;EC9CA,cvBmFgE;EI9E9D,yBJ8E8D;EuBjFhE,qBvBiFgE;AlBomJlE;;AyCnrJE;EACE,cAA0B;AzCsrJ9B;;AwC7oJE;EC9CA,cvBmFgE;EI9E9D,yBJ8E8D;EuBjFhE,qBvBiFgE;AlB8mJlE;;AyC7rJE;EACE,cAA0B;AzCgsJ9B;;A0CpsJE;EACE;IAAO,2BAAuC;E1CwsJhD;E0CvsJE;IAAK,wBAAwB;E1C0sJ/B;AACF;;A0C7sJE;EACE;IAAO,2BAAuC;E1CwsJhD;E0CvsJE;IAAK,wBAAwB;E1C0sJ/B;AACF;;A0CvsJA;EACE,aAAa;EACb,YvCs8BsC;EuCr8BtC,gBAAgB;EtC+HZ,kBAAW;EsC7Hf,yBvCJgB;EOJd,sBPqOgC;AH8+IpC;;A0CtsJA;EACE,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,WvCfa;EuCgBb,kBAAkB;EAClB,mBAAmB;EACnB,yBvCWe;EiB9BX,2BjBk9B4C;AH2wHlD;;AoBxtJI;EsBOJ;ItBNM,gBAAgB;EpB4tJpB;AACF;;A0C5sJA;EpBcE,qMAA6I;EoBZ7I,0BvCi7BsC;AH8xHxC;;A0C3sJE;EACE,0DvCm7BkD;EuCn7BlD,kDvCm7BkD;AH2xHtD;;A0C3sJM;EAJJ;IAKM,uBAAe;IAAf,eAAe;E1C+sJrB;AACF;;A2CxvJA;EACE,aAAa;EACb,uBAAuB;A3C2vJzB;;A2CxvJA;EACE,OAAO;A3C2vJT;;A4C7vJA;EACE,aAAa;EACb,sBAAsB;EAGtB,eAAe;EACf,gBAAgB;A5C8vJlB;;A4CrvJA;EACE,WAAW;EACX,czCPgB;EyCQhB,mBAAmB;A5CwvJrB;;AK9vJE;EuCUE,UAAU;EACV,czCbc;EyCcd,qBAAqB;EACrB,yBzCrBc;AH6wJlB;;A4ClwJA;EAcI,czCjBc;EyCkBd,yBzCzBc;AHixJlB;;A4C/uJA;EACE,kBAAkB;EAClB,cAAc;EACd,wBzCs7ByC;EyCp7BzC,mBzCuL+B;EyCrL/B,sBzC3Ca;EyC4Cb,sCzClCa;AHkxJf;;A4CxvJA;ElC7BI,+BP4NgC;EO3NhC,gCP2NgC;AH8jJpC;;A4C7vJA;EAeI,gBAAgB;ElC9BhB,mCP8MgC;EO7MhC,kCP6MgC;AHokJpC;;A4CnwJA;EAqBI,czCnDc;EyCoDd,oBAAoB;EACpB,sBzC3DW;AH6yJf;;A4CzwJA;EA4BI,UAAU;EACV,WzCjEW;EyCkEX,yBzCrCa;EyCsCb,qBzCtCa;AHuxJjB;;A4CpuJI;EACE,mBAAmB;A5CuuJzB;;A4CxuJI;EAII,kBzC4IyB;EyC3IzB,gBAAgB;A5CwuJxB;;A4C7uJI;ElCpDA,+BPuMgC;EOtMhC,kCPsMgC;EO1LhC,0BkCgDwC;A5C0uJ5C;;A4CnvJI;EAaM,eAAe;ElC/ErB,gCPqNgC;EOpNhC,mCPoNgC;EO9KhC,4BkC0C0C;A5C2uJ9C;;AcrxJI;E8B2BA;IACE,mBAAmB;E5C8vJvB;E4C/vJE;IAII,kBzC4IyB;IyC3IzB,gBAAgB;E5C8vJtB;E4CnwJE;IlCpDA,+BPuMgC;IOtMhC,kCPsMgC;IO1LhC,0BkCgDwC;E5C+vJ1C;E4CxwJE;IAaM,eAAe;IlC/ErB,gCPqNgC;IOpNhC,mCPoNgC;IO9KhC,4BkC0C0C;E5C+vJ5C;AACF;;Ac1yJI;E8B2BA;IACE,mBAAmB;E5CmxJvB;E4CpxJE;IAII,kBzC4IyB;IyC3IzB,gBAAgB;E5CmxJtB;E4CxxJE;IlCpDA,+BPuMgC;IOtMhC,kCPsMgC;IO1LhC,0BkCgDwC;E5CoxJ1C;E4C7xJE;IAaM,eAAe;IlC/ErB,gCPqNgC;IOpNhC,mCPoNgC;IO9KhC,4BkC0C0C;E5CoxJ5C;AACF;;Ac/zJI;E8B2BA;IACE,mBAAmB;E5CwyJvB;E4CzyJE;IAII,kBzC4IyB;IyC3IzB,gBAAgB;E5CwyJtB;E4C7yJE;IlCpDA,+BPuMgC;IOtMhC,kCPsMgC;IO1LhC,0BkCgDwC;E5CyyJ1C;E4ClzJE;IAaM,eAAe;IlC/ErB,gCPqNgC;IOpNhC,mCPoNgC;IO9KhC,4BkC0C0C;E5CyyJ5C;AACF;;Acp1JI;E8B2BA;IACE,mBAAmB;E5C6zJvB;E4C9zJE;IAII,kBzC4IyB;IyC3IzB,gBAAgB;E5C6zJtB;E4Cl0JE;IlCpDA,+BPuMgC;IOtMhC,kCPsMgC;IO1LhC,0BkCgDwC;E5C8zJ1C;E4Cv0JE;IAaM,eAAe;IlC/ErB,gCPqNgC;IOpNhC,mCPoNgC;IO9KhC,4BkC0C0C;E5C8zJ5C;AACF;;A4ClzJA;EAEI,eAAe;EACf,cAAc;ElCjHd,gBkCkHwB;A5CozJ5B;;A4CxzJA;EAOM,mBzC6G2B;AHwsJjC;;A4C5zJA;EAaM,aAAa;A5CmzJnB;;A4Ch0JA;EAmBM,gBAAgB;EAChB,gBAAgB;A5CizJtB;;A6Cr7JE;EACE,c3BgF8D;E2B/E9D,yB3B+E8D;AlBy2JlE;;AK76JE;EwCPM,c3B2E0D;E2B1E1D,yBAAyC;A7Cw7JjD;;A6C/7JE;EAWM,W1CPO;E0CQP,yB3BqE0D;E2BpE1D,qB3BoE0D;AlBo3JlE;;A6Cr8JE;EACE,c3BgF8D;E2B/E9D,yB3B+E8D;AlBy3JlE;;AK77JE;EwCPM,c3B2E0D;E2B1E1D,yBAAyC;A7Cw8JjD;;A6C/8JE;EAWM,W1CPO;E0CQP,yB3BqE0D;E2BpE1D,qB3BoE0D;AlBo4JlE;;A6Cr9JE;EACE,c3BgF8D;E2B/E9D,yB3B+E8D;AlBy4JlE;;AK78JE;EwCPM,c3B2E0D;E2B1E1D,yBAAyC;A7Cw9JjD;;A6C/9JE;EAWM,W1CPO;E0CQP,yB3BqE0D;E2BpE1D,qB3BoE0D;AlBo5JlE;;A6Cr+JE;EACE,c3BgF8D;E2B/E9D,yB3B+E8D;AlBy5JlE;;AK79JE;EwCPM,c3B2E0D;E2B1E1D,yBAAyC;A7Cw+JjD;;A6C/+JE;EAWM,W1CPO;E0CQP,yB3BqE0D;E2BpE1D,qB3BoE0D;AlBo6JlE;;A6Cr/JE;EACE,c3BgF8D;E2B/E9D,yB3B+E8D;AlBy6JlE;;AK7+JE;EwCPM,c3B2E0D;E2B1E1D,yBAAyC;A7Cw/JjD;;A6C//JE;EAWM,W1CPO;E0CQP,yB3BqE0D;E2BpE1D,qB3BoE0D;AlBo7JlE;;A6CrgKE;EACE,c3BgF8D;E2B/E9D,yB3B+E8D;AlBy7JlE;;AK7/JE;EwCPM,c3B2E0D;E2B1E1D,yBAAyC;A7CwgKjD;;A6C/gKE;EAWM,W1CPO;E0CQP,yB3BqE0D;E2BpE1D,qB3BoE0D;AlBo8JlE;;A6CrhKE;EACE,c3BgF8D;E2B/E9D,yB3B+E8D;AlBy8JlE;;AK7gKE;EwCPM,c3B2E0D;E2B1E1D,yBAAyC;A7CwhKjD;;A6C/hKE;EAWM,W1CPO;E0CQP,yB3BqE0D;E2BpE1D,qB3BoE0D;AlBo9JlE;;A6CriKE;EACE,c3BgF8D;E2B/E9D,yB3B+E8D;AlBy9JlE;;AK7hKE;EwCPM,c3B2E0D;E2B1E1D,yBAAyC;A7CwiKjD;;A6C/iKE;EAWM,W1CPO;E0CQP,yB3BqE0D;E2BpE1D,qB3BoE0D;AlBo+JlE;;A8CxjKA;EACE,YAAY;E1CyIR,iBAAW;E0CvIf,gB3CyR+B;E2CxR/B,cAAc;EACd,W3CYa;E2CXb,yB3CCa;E2CAb,WAAW;A9C2jKb;;AKtjKE;EyCDE,W3CMW;E2CLX,qBAAqB;A9C2jKzB;;AKvjKE;EyCCI,YAAY;A9C0jKlB;;A8C/iKA;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS;EACT,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A9CkjKlB;;A8C5iKA;EACE,oBAAoB;A9C+iKtB;;A+CtlKA;EACE,gB5C63BuC;E4C53BvC,gBAAgB;E3CwIZ,mBAAW;E2CrIf,2C5CEa;E4CDb,4BAA4B;EAC5B,oC5C83BmD;E4C73BnD,gD5CSa;E4CRb,mCAA2B;EAA3B,2BAA2B;EAC3B,UAAU;ErCLR,sBPqOgC;AHy3JpC;;A+CnmKA;EAcI,sB5Ci3BsC;AHwuI1C;;A+CvmKA;EAkBI,UAAU;A/CylKd;;A+C3mKA;EAsBI,cAAc;EACd,UAAU;A/CylKd;;A+ChnKA;EA2BI,aAAa;A/CylKjB;;A+CrlKA;EACE,aAAa;EACb,mBAAmB;EACnB,wB5C61BwC;E4C51BxC,c5CtBgB;E4CuBhB,2C5C7Ba;E4C8Bb,4BAA4B;EAC5B,4C5Cq2BoD;AHmvItD;;A+CrlKA;EACE,gB5Cq1BwC;AHmwI1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0nJzC;;AmD38KA;EAII,iCAAwE;AnD28K5E;;AmD/8KA;EAOM,SAAS;EACT,6BAAgE;EAChE,qChD20BiE;AHioJvE;;AmDr9KA;EAaM,WhDqL2B;EgDpL3B,6BAAgE;EAChE,sBhD7CS;AHy/Kf;;AmDv8KA;EACE,mBhD4zBuC;AH8oJzC;;AmD38KA;EAII,+BAAsE;EACtE,ahDwzBqC;EgDvzBrC,YhDszBoC;EgDrzBpC,gBAA2B;AnD28K/B;;AmDl9KA;EAUM,OAAO;EACP,oCAA2F;EAC3F,uChDozBiE;AHwpJvE;;AmDx9KA;EAgBM,ShD8J2B;EgD7J3B,oCAA2F;EAC3F,wBhDpES;AHghLf;;AmDv8KA;EACE,kBhDqyBuC;AHqqJzC;;AmD38KA;EAII,8BAAqE;AnD28KzE;;AmD/8KA;EAOM,MAAM;EACN,oCAA2F;EAC3F,wChDgyBiE;AH4qJvE;;AmDr9KA;EAaM,QhD0I2B;EgDzI3B,oCAA2F;EAC3F,yBhDxFS;AHoiLf;;AmD39KA;EAqBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,cAAc;EACd,WhD4wBoC;EgD3wBpC,oBAAsC;EACtC,WAAW;EACX,gChDgwBuD;AH0sJ3D;;AmDt8KA;EACE,oBhDqwBuC;AHosJzC;;AmD18KA;EAII,gCAAuE;EACvE,ahDiwBqC;EgDhwBrC,YhD+vBoC;EgD9vBpC,gBAA2B;AnD08K/B;;AmDj9KA;EAUM,QAAQ;EACR,oChD2vBmC;EgD1vBnC,sChD6vBiE;AH8sJvE;;AmDv9KA;EAgBM,UhDuG2B;EgDtG3B,oChDqvBmC;EgDpvBnC,uBhD3HS;AHskLf;;AmDr7KA;EACE,uBhDstBwC;EgDrtBxC,gBAAgB;E/ChBZ,eAAW;E+CmBf,yBhD+sByD;EgD9sBzD,gCAAyE;EzChJvE,0CyCiJyE;EzChJzE,2CyCgJyE;AnDw7K7E;;AmD/7KA;EAWI,aAAa;AnDw7KjB;;AmDp7KA;EACE,uBhDusBwC;EgDtsBxC,chDzJgB;AHglLlB;;AoDnlLA;EACE,kBAAkB;ApDslLpB;;AoDnlLA;EACE,mBAAmB;ApDslLrB;;AoDnlLA;EACE,kBAAkB;EAClB,WAAW;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D0vMpE;;A4DzvMI;EAA8B,yBAAyB;A5D6vM3D;;A4D5vMI;EAA8B,uBAAuB;A5DgwMzD;;A4D/vMI;EAA8B,uBAAuB;A5DmwMzD;;A4DlwMI;EAA8B,yBAAyB;A5DswM3D;;A4DrwMI;EAA8B,yBAAyB;A5DywM3D;;A4DvwMI;EAAoC,sCAAsC;A5D2wM9E;;A4D1wMI;EAAoC,oCAAoC;A5D8wM5E;;A4D7wMI;EAAoC,kCAAkC;A5DixM1E;;A4DhxMI;EAAoC,yCAAyC;A5DoxMjF;;A4DnxMI;EAAoC,wCAAwC;A5DuxMhF;;A4DrxMI;EAAiC,kCAAkC;A5DyxMvE;;A4DxxMI;EAAiC,gCAAgC;A5D4xMrE;;A4D3xMI;EAAiC,8BAA8B;A5D+xMnE;;A4D9xMI;EAAiC,gCAAgC;A5DkyMrE;;A4DjyMI;EAAiC,+BAA+B;A5DqyMpE;;A4DnyMI;EAAkC,oCAAoC;A5DuyM1E;;A4DtyMI;EAAkC,kCAAkC;A5D0yMxE;;A4DzyMI;EAAkC,gCAAgC;A5D6yMtE;;A4D5yMI;EAAkC,uCAAuC;A5DgzM7E;;A4D/yMI;EAAkC,sCAAsC;A5DmzM5E;;A4DlzMI;EAAkC,iCAAiC;A5DszMvE;;A4DpzMI;EAAgC,2BAA2B;A5DwzM/D;;A4DvzMI;EAAgC,iCAAiC;A5D2zMrE;;A4D1zMI;EAAgC,+BAA+B;A5D8zMnE;;A4D7zMI;EAAgC,6BAA6B;A5Di0MjE;;A4Dh0MI;EAAgC,+BAA+B;A5Do0MnE;;A4Dn0MI;EAAgC,8BAA8B;A5Du0MlE;;Ac3zMI;E8ClDA;IAAgC,8BAA8B;E5Dk3MhE;E4Dj3ME;IAAgC,iCAAiC;E5Do3MnE;E4Dn3ME;IAAgC,sCAAsC;E5Ds3MxE;E4Dr3ME;IAAgC,yCAAyC;E5Dw3M3E;E4Dt3ME;IAA8B,0BAA0B;E5Dy3M1D;E4Dx3ME;IAA8B,4BAA4B;E5D23M5D;E4D13ME;IAA8B,kCAAkC;E5D63MlE;E4D53ME;IAA8B,yBAAyB;E5D+3MzD;E4D93ME;IAA8B,uBAAuB;E5Di4MvD;E4Dh4ME;IAA8B,uBAAuB;E5Dm4MvD;E4Dl4ME;IAA8B,yBAAyB;E5Dq4MzD;E4Dp4ME;IAA8B,yBAAyB;E5Du4MzD;E4Dr4ME;IAAoC,sCAAsC;E5Dw4M5E;E4Dv4ME;IAAoC,oCAAoC;E5D04M1E;E4Dz4ME;IAAoC,kCAAkC;E5D44MxE;E4D34ME;IAAoC,yCAAyC;E5D84M/E;E4D74ME;IAAoC,wCAAwC;E5Dg5M9E;E4D94ME;IAAiC,kCAAkC;E5Di5MrE;E4Dh5ME;IAAiC,gCAAgC;E5Dm5MnE;E4Dl5ME;IAAiC,8BAA8B;E5Dq5MjE;E4Dp5ME;IAAiC,gCAAgC;E5Du5MnE;E4Dt5ME;IAAiC,+BAA+B;E5Dy5MlE;E4Dv5ME;IAAkC,oCAAoC;E5D05MxE;E4Dz5ME;IAAkC,kCAAkC;E5D45MtE;E4D35ME;IAAkC,gCAAgC;E5D85MpE;E4D75ME;IAAkC,uCAAuC;E5Dg6M3E;E4D/5ME;IAAkC,sCAAsC;E5Dk6M1E;E4Dj6ME;IAAkC,iCAAiC;E5Do6MrE;E4Dl6ME;IAAgC,2BAA2B;E5Dq6M7D;E4Dp6ME;IAAgC,iCAAiC;E5Du6MnE;E4Dt6ME;IAAgC,+BAA+B;E5Dy6MjE;E4Dx6ME;IAAgC,6BAA6B;E5D26M/D;E4D16ME;IAAgC,+BAA+B;E5D66MjE;E4D56ME;IAAgC,8BAA8B;E5D+6MhE;AACF;;Acp6MI;E8ClDA;IAAgC,8BAA8B;E5D29MhE;E4D19ME;IAAgC,iCAAiC;E5D69MnE;E4D59ME;IAAgC,sCAAsC;E5D+9MxE;E4D99ME;IAAgC,yCAAyC;E5Di+M3E;E4D/9ME;IAA8B,0BAA0B;E5Dk+M1D;E4Dj+ME;IAA8B,4BAA4B;E5Do+M5D;E4Dn+ME;IAA8B,kCAAkC;E5Ds+MlE;E4Dr+ME;IAA8B,yBAAyB;E5Dw+MzD;E4Dv+ME;IAA8B,uBAAuB;E5D0+MvD;E4Dz+ME;IAA8B,uBAAuB;E5D4+MvD;E4D3+ME;IAA8B,yBAAyB;E5D8+MzD;E4D7+ME;IAA8B,yBAAyB;E5Dg/MzD;E4D9+ME;IAAoC,sCAAsC;E5Di/M5E;E4Dh/ME;IAAoC,oCAAoC;E5Dm/M1E;E4Dl/ME;IAAoC,kCAAkC;E5Dq/MxE;E4Dp/ME;IAAoC,yCAAyC;E5Du/M/E;E4Dt/ME;IAAoC,wCAAwC;E5Dy/M9E;E4Dv/ME;IAAiC,kCAAkC;E5D0/MrE;E4Dz/ME;IAAiC,gCAAgC;E5D4/MnE;E4D3/ME;IAAiC,8BAA8B;E5D8/MjE;E4D7/ME;IAAiC,gCAAgC;E5DggNnE;E4D//ME;IAAiC,+BAA+B;E5DkgNlE;E4DhgNE;IAAkC,oCAAoC;E5DmgNxE;E4DlgNE;IAAkC,kCAAkC;E5DqgNtE;E4DpgNE;IAAkC,gCAAgC;E5DugNpE;E4DtgNE;IAAkC,uCAAuC;E5DygN3E;E4DxgNE;IAAkC,sCAAsC;E5D2gN1E;E4D1gNE;IAAkC,iCAAiC;E5D6gNrE;E4D3gNE;IAAgC,2BAA2B;E5D8gN7D;E4D7gNE;IAAgC,iCAAiC;E5DghNnE;E4D/gNE;IAAgC,+BAA+B;E5DkhNjE;E4DjhNE;IAAgC,6BAA6B;E5DohN/D;E4DnhNE;IAAgC,+BAA+B;E5DshNjE;E4DrhNE;IAAgC,8BAA8B;E5DwhNhE;AACF;;Ac7gNI;E8ClDA;IAAgC,8BAA8B;E5DokNhE;E4DnkNE;IAAgC,iCAAiC;E5DskNnE;E4DrkNE;IAAgC,sCAAsC;E5DwkNxE;E4DvkNE;IAAgC,yCAAyC;E5D0kN3E;E4DxkNE;IAA8B,0BAA0B;E5D2kN1D;E4D1kNE;IAA8B,4BAA4B;E5D6kN5D;E4D5kNE;IAA8B,kCAAkC;E5D+kNlE;E4D9kNE;IAA8B,yBAAyB;E5DilNzD;E4DhlNE;IAA8B,uBAAuB;E5DmlNvD;E4DllNE;IAA8B,uBAAuB;E5DqlNvD;E4DplNE;IAA8B,yBAAyB;E5DulNzD;E4DtlNE;IAA8B,yBAAyB;E5DylNzD;E4DvlNE;IAAoC,sCAAsC;E5D0lN5E;E4DzlNE;IAAoC,oCAAoC;E5D4lN1E;E4D3lNE;IAAoC,kCAAkC;E5D8lNxE;E4D7lNE;IAAoC,yCAAyC;E5DgmN/E;E4D/lNE;IAAoC,wCAAwC;E5DkmN9E;E4DhmNE;IAAiC,kCAAkC;E5DmmNrE;E4DlmNE;IAAiC,gCAAgC;E5DqmNnE;E4DpmNE;IAAiC,8BAA8B;E5DumNjE;E4DtmNE;IAAiC,gCAAgC;E5DymNnE;E4DxmNE;IAAiC,+BAA+B;E5D2mNlE;E4DzmNE;IAAkC,oCAAoC;E5D4mNxE;E4D3mNE;IAAkC,kCAAkC;E5D8mNtE;E4D7mNE;IAAkC,gCAAgC;E5DgnNpE;E4D/mNE;IAAkC,uCAAuC;E5DknN3E;E4DjnNE;IAAkC,sCAAsC;E5DonN1E;E4DnnNE;IAAkC,iCAAiC;E5DsnNrE;E4DpnNE;IAAgC,2BAA2B;E5DunN7D;E4DtnNE;IAAgC,iCAAiC;E5DynNnE;E4DxnNE;IAAgC,+BAA+B;E5D2nNjE;E4D1nNE;IAAgC,6BAA6B;E5D6nN/D;E4D5nNE;IAAgC,+BAA+B;E5D+nNjE;E4D9nNE;IAAgC,8BAA8B;E5DioNhE;AACF;;ActnNI;E8ClDA;IAAgC,8BAA8B;E5D6qNhE;E4D5qNE;IAAgC,iCAAiC;E5D+qNnE;E4D9qNE;IAAgC,sCAAsC;E5DirNxE;E4DhrNE;IAAgC,yCAAyC;E5DmrN3E;E4DjrNE;IAA8B,0BAA0B;E5DorN1D;E4DnrNE;IAA8B,4BAA4B;E5DsrN5D;E4DrrNE;IAA8B,kCAAkC;E5DwrNlE;E4DvrNE;IAA8B,yBAAyB;E5D0rNzD;E4DzrNE;IAA8B,uBAAuB;E5D4rNvD;E4D3rNE;IAA8B,uBAAuB;E5D8rNvD;E4D7rNE;IAA8B,yBAAyB;E5DgsNzD;E4D/rNE;IAA8B,yBAAyB;E5DksNzD;E4DhsNE;IAAoC,sCAAsC;E5DmsN5E;E4DlsNE;IAAoC,oCAAoC;E5DqsN1E;E4DpsNE;IAAoC,kCAAkC;E5DusNxE;E4DtsNE;IAAoC,yCAAyC;E5DysN/E;E4DxsNE;IAAoC,wCAAwC;E5D2sN9E;E4DzsNE;IAAiC,kCAAkC;E5D4sNrE;E4D3sNE;IAAiC,gCAAgC;E5D8sNnE;E4D7sNE;IAAiC,8BAA8B;E5DgtNjE;E4D/sNE;IAAiC,gCAAgC;E5DktNnE;E4DjtNE;IAAiC,+BAA+B;E5DotNlE;E4DltNE;IAAkC,oCAAoC;E5DqtNxE;E4DptNE;IAAkC,kCAAkC;E5DutNtE;E4DttNE;IAAkC,gCAAgC;E5DytNpE;E4DxtNE;IAAkC,uCAAuC;E5D2tN3E;E4D1tNE;IAAkC,sCAAsC;E5D6tN1E;E4D5tNE;IAAkC,iCAAiC;E5D+tNrE;E4D7tNE;IAAgC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,6BAAoC;ArEuiO9C;;AqEriOQ;;EAEE,+BAAwC;ArEwiOlD;;AqEtiOQ;;EAEE,gCAA0C;ArEyiOpD;;AqEviOQ;;EAEE,8BAAsC;ArE0iOhD;;AqEzjOQ;EAAgC,uBAA4B;ArE6jOpE;;AqE5jOQ;;EAEE,2BAAoC;ArE+jO9C;;AqE7jOQ;;EAEE,6BAAwC;ArEgkOlD;;AqE9jOQ;;EAEE,8BAA0C;ArEikOpD;;AqE/jOQ;;EAEE,4BAAsC;ArEkkOhD;;AqEjlOQ;EAAgC,yBAA4B;ArEqlOpE;;AqEplOQ;;EAEE,6BAAoC;ArEulO9C;;AqErlOQ;;EAEE,+BAAwC;ArEwlOlD;;AqEtlOQ;;EAEE,gCAA0C;ArEylOpD;;AqEvlOQ;;EAEE,8BAAsC;ArE0lOhD;;AqEzmOQ;EAAgC,uBAA4B;ArE6mOpE;;AqE5mOQ;;EAEE,2BAAoC;ArE+mO9C;;AqE7mOQ;;EAEE,6BAAwC;ArEgnOlD;;AqE9mOQ;;EAEE,8BAA0C;ArEinOpD;;AqE/mOQ;;EAEE,4BAAsC;ArEknOhD;;AqEjoOQ;EAAgC,qBAA4B;ArEqoOpE;;AqEpoOQ;;EAEE,yBAAoC;ArEuoO9C;;AqEroOQ;;EAEE,2BAAwC;ArEwoOlD;;AqEtoOQ;;EAEE,4BAA0C;ArEyoOpD;;AqEvoOQ;;EAEE,0BAAsC;ArE0oOhD;;AqEzpOQ;EAAgC,2BAA4B;ArE6pOpE;;AqE5pOQ;;EAEE,+BAAoC;ArE+pO9C;;AqE7pOQ;;EAEE,iCAAwC;ArEgqOlD;;AqE9pOQ;;EAEE,kCAA0C;ArEiqOpD;;AqE/pOQ;;EAEE,gCAAsC;ArEkqOhD;;AqEjrOQ;EAAgC,0BAA4B;ArEqrOpE;;AqEprOQ;;EAEE,8BAAoC;ArEurO9C;;AqErrOQ;;EAEE,gCAAwC;ArEwrOlD;;AqEtrOQ;;EAEE,iCAA0C;ArEyrOpD;;AqEvrOQ;;EAEE,+BAAsC;ArE0rOhD;;AqEzsOQ;EAAgC,wBAA4B;ArE6sOpE;;AqE5sOQ;;EAEE,4BAAoC;ArE+sO9C;;AqE7sOQ;;EAEE,8BAAwC;ArEgtOlD;;AqE9sOQ;;EAEE,+BAA0C;ArEitOpD;;AqE/sOQ;;EAEE,6BAAsC;ArEktOhD;;AqEjuOQ;EAAgC,0BAA4B;ArEquOpE;;AqEpuOQ;;EAEE,8BAAoC;ArEuuO9C;;AqEruOQ;;EAEE,gCAAwC;ArEwuOlD;;AqEtuOQ;;EAEE,iCAA0C;ArEyuOpD;;AqEvuOQ;;EAEE,+BAAsC;ArE0uOhD;;AqEzvOQ;EAAgC,wBAA4B;ArE6vOpE;;AqE5vOQ;;EAEE,4BAAoC;ArE+vO9C;;AqE7vOQ;;EAEE,8BAAwC;ArEgwOlD;;AqE9vOQ;;EAEE,+BAA0C;ArEiwOpD;;AqE/vOQ;;EAEE,6BAAsC;ArEkwOhD;;AqE1vOQ;EAAwB,2BAA2B;ArE8vO3D;;AqE7vOQ;;EAEE,+BAA+B;ArEgwOzC;;AqE9vOQ;;EAEE,iCAAiC;ArEiwO3C;;AqE/vOQ;;EAEE,kCAAkC;ArEkwO5C;;AqEhwOQ;;EAEE,gCAAgC;ArEmwO1C;;AqElxOQ;EAAwB,0BAA2B;ArEsxO3D;;AqErxOQ;;EAEE,8BAA+B;ArEwxOzC;;AqEtxOQ;;EAEE,gCAAiC;ArEyxO3C;;AqEvxOQ;;EAEE,iCAAkC;ArE0xO5C;;AqExxOQ;;EAEE,+BAAgC;ArE2xO1C;;AqE1yOQ;EAAwB,wBAA2B;ArE8yO3D;;AqE7yOQ;;EAEE,4BAA+B;ArEgzOzC;;AqE9yOQ;;EAEE,8BAAiC;ArEizO3C;;AqE/yOQ;;EAEE,+BAAkC;ArEkzO5C;;AqEhzOQ;;EAEE,6BAAgC;ArEmzO1C;;AqEl0OQ;EAAwB,0BAA2B;ArEs0O3D;;AqEr0OQ;;EAEE,8BAA+B;ArEw0OzC;;AqEt0OQ;;EAEE,gCAAiC;ArEy0O3C;;AqEv0OQ;;EAEE,iCAAkC;ArE00O5C;;AqEx0OQ;;EAEE,+BAAgC;ArE20O1C;;AqE11OQ;EAAwB,wBAA2B;ArE81O3D;;AqE71OQ;;EAEE,4BAA+B;ArEg2OzC;;AqE91OQ;;EAEE,8BAAiC;ArEi2O3C;;AqE/1OQ;;EAEE,+BAAkC;ArEk2O5C;;AqEh2OQ;;EAEE,6BAAgC;ArEm2O1C;;AqE71OI;EAAmB,uBAAuB;ArEi2O9C;;AqEh2OI;;EAEE,2BAA2B;ArEm2OjC;;AqEj2OI;;EAEE,6BAA6B;ArEo2OnC;;AqEl2OI;;EAEE,8BAA8B;ArEq2OpC;;AqEn2OI;;EAEE,4BAA4B;ArEs2OlC;;Ac/2OI;EuDlDI;IAAgC,oBAA4B;ErEs6OlE;EqEr6OM;;IAEE,wBAAoC;ErEu6O5C;EqEr6OM;;IAEE,0BAAwC;ErEu6OhD;EqEr6OM;;IAEE,2BAA0C;ErEu6OlD;EqEr6OM;;IAEE,yBAAsC;ErEu6O9C;EqEt7OM;IAAgC,0BAA4B;ErEy7OlE;EqEx7OM;;IAEE,8BAAoC;ErE07O5C;EqEx7OM;;IAEE,gCAAwC;ErE07OhD;EqEx7OM;;IAEE,iCAA0C;ErE07OlD;EqEx7OM;;IAEE,+BAAsC;ErE07O9C;EqEz8OM;IAAgC,yBAA4B;ErE48OlE;EqE38OM;;IAEE,6BAAoC;ErE68O5C;EqE38OM;;IAEE,+BAAwC;ErE68OhD;EqE38OM;;IAEE,gCAA0C;ErE68OlD;EqE38OM;;IAEE,8BAAsC;ErE68O9C;EqE59OM;IAAgC,uBAA4B;ErE+9OlE;EqE99OM;;IAEE,2BAAoC;ErEg+O5C;EqE99OM;;IAEE,6BAAwC;ErEg+OhD;EqE99OM;;IAEE,8BAA0C;ErEg+OlD;EqE99OM;;IAEE,4BAAsC;ErEg+O9C;EqE/+OM;IAAgC,yBAA4B;ErEk/OlE;EqEj/OM;;IAEE,6BAAoC;ErEm/O5C;EqEj/OM;;IAEE,+BAAwC;ErEm/OhD;EqEj/OM;;IAEE,gCAA0C;ErEm/OlD;EqEj/OM;;IAEE,8BAAsC;ErEm/O9C;EqElgPM;IAAgC,uBAA4B;ErEqgPlE;EqEpgPM;;IAEE,2BAAoC;ErEsgP5C;EqEpgPM;;IAEE,6BAAwC;ErEsgPhD;EqEpgPM;;IAEE,8BAA0C;ErEsgPlD;EqEpgPM;;IAEE,4BAAsC;ErEsgP9C;EqErhPM;IAAgC,qBAA4B;ErEwhPlE;EqEvhPM;;IAEE,yBAAoC;ErEyhP5C;EqEvhPM;;IAEE,2BAAwC;ErEyhPhD;EqEvhPM;;IAEE,4BAA0C;ErEyhPlD;EqEvhPM;;IAEE,0BAAsC;ErEyhP9C;EqExiPM;IAAgC,2BAA4B;ErE2iPlE;EqE1iPM;;IAEE,+BAAoC;ErE4iP5C;EqE1iPM;;IAEE,iCAAwC;ErE4iPhD;EqE1iPM;;IAEE,kCAA0C;ErE4iPlD;EqE1iPM;;IAEE,gCAAsC;ErE4iP9C;EqE3jPM;IAAgC,0BAA4B;ErE8jPlE;EqE7jPM;;IAEE,8BAAoC;ErE+jP5C;EqE7jPM;;IAEE,gCAAwC;ErE+jPhD;EqE7jPM;;IAEE,iCAA0C;ErE+jPlD;EqE7jPM;;IAEE,+BAAsC;ErE+jP9C;EqE9kPM;IAAgC,wBAA4B;ErEilPlE;EqEhlPM;;IAEE,4BAAoC;ErEklP5C;EqEhlPM;;IAEE,8BAAwC;ErEklPhD;EqEhlPM;;IAEE,+BAA0C;ErEklPlD;EqEhlPM;;IAEE,6BAAsC;ErEklP9C;EqEjmPM;IAAgC,0BAA4B;ErEomPlE;EqEnmPM;;IAEE,8BAAoC;ErEqmP5C;EqEnmPM;;IAEE,gCAAwC;ErEqmPhD;EqEnmPM;;IAEE,iCAA0C;ErEqmPlD;EqEnmPM;;IAEE,+BAAsC;ErEqmP9C;EqEpnPM;IAAgC,wBAA4B;ErEunPlE;EqEtnPM;;IAEE,4BAAoC;ErEwnP5C;EqEtnPM;;IAEE,8BAAwC;ErEwnPhD;EqEtnPM;;IAEE,+BAA0C;ErEwnPlD;EqEtnPM;;IAEE,6BAAsC;ErEwnP9C;EqEhnPM;IAAwB,2BAA2B;ErEmnPzD;EqElnPM;;IAEE,+BAA+B;ErEonPvC;EqElnPM;;IAEE,iCAAiC;ErEonPzC;EqElnPM;;IAEE,kCAAkC;ErEonP1C;EqElnPM;;IAEE,gCAAgC;ErEonPxC;EqEnoPM;IAAwB,0BAA2B;ErEsoPzD;EqEroPM;;IAEE,8BAA+B;ErEuoPvC;EqEroPM;;IAEE,gCAAiC;ErEuoPzC;EqEroPM;;IAEE,iCAAkC;ErEuoP1C;EqEroPM;;IAEE,+BAAgC;ErEuoPxC;EqEtpPM;IAAwB,wBAA2B;ErEypPzD;EqExpPM;;IAEE,4BAA+B;ErE0pPvC;EqExpPM;;IAEE,8BAAiC;ErE0pPzC;EqExpPM;;IAEE,+BAAkC;ErE0pP1C;EqExpPM;;IAEE,6BAAgC;ErE0pPxC;EqEzqPM;IAAwB,0BAA2B;ErE4qPzD;EqE3qPM;;IAEE,8BAA+B;ErE6qPvC;EqE3qPM;;IAEE,gCAAiC;ErE6qPzC;EqE3qPM;;IAEE,iCAAkC;ErE6qP1C;EqE3qPM;;IAEE,+BAAgC;ErE6qPxC;EqE5rPM;IAAwB,wBAA2B;ErE+rPzD;EqE9rPM;;IAEE,4BAA+B;ErEgsPvC;EqE9rPM;;IAEE,8BAAiC;ErEgsPzC;EqE9rPM;;IAEE,+BAAkC;ErEgsP1C;EqE9rPM;;IAEE,6BAAgC;ErEgsPxC;EqE1rPE;IAAmB,uBAAuB;ErE6rP5C;EqE5rPE;;IAEE,2BAA2B;ErE8rP/B;EqE5rPE;;IAEE,6BAA6B;ErE8rPjC;EqE5rPE;;IAEE,8BAA8B;ErE8rPlC;EqE5rPE;;IAEE,4BAA4B;ErE8rPhC;AACF;;AcxsPI;EuDlDI;IAAgC,oBAA4B;ErE+vPlE;EqE9vPM;;IAEE,wBAAoC;ErEgwP5C;EqE9vPM;;IAEE,0BAAwC;ErEgwPhD;EqE9vPM;;IAEE,2BAA0C;ErEgwPlD;EqE9vPM;;IAEE,yBAAsC;ErEgwP9C;EqE/wPM;IAAgC,0BAA4B;ErEkxPlE;EqEjxPM;;IAEE,8BAAoC;ErEmxP5C;EqEjxPM;;IAEE,gCAAwC;ErEmxPhD;EqEjxPM;;IAEE,iCAA0C;ErEmxPlD;EqEjxPM;;IAEE,+BAAsC;ErEmxP9C;EqElyPM;IAAgC,yBAA4B;ErEqyPlE;EqEpyPM;;IAEE,6BAAoC;ErEsyP5C;EqEpyPM;;IAEE,+BAAwC;ErEsyPhD;EqEpyPM;;IAEE,gCAA0C;ErEsyPlD;EqEpyPM;;IAEE,8BAAsC;ErEsyP9C;EqErzPM;IAAgC,uBAA4B;ErEwzPlE;EqEvzPM;;IAEE,2BAAoC;ErEyzP5C;EqEvzPM;;IAEE,6BAAwC;ErEyzPhD;EqEvzPM;;IAEE,8BAA0C;ErEyzPlD;EqEvzPM;;IAEE,4BAAsC;ErEyzP9C;EqEx0PM;IAAgC,yBAA4B;ErE20PlE;EqE10PM;;IAEE,6BAAoC;ErE40P5C;EqE10PM;;IAEE,+BAAwC;ErE40PhD;EqE10PM;;IAEE,gCAA0C;ErE40PlD;EqE10PM;;IAEE,8BAAsC;ErE40P9C;EqE31PM;IAAgC,uBAA4B;ErE81PlE;EqE71PM;;IAEE,2BAAoC;ErE+1P5C;EqE71PM;;IAEE,6BAAwC;ErE+1PhD;EqE71PM;;IAEE,8BAA0C;ErE+1PlD;EqE71PM;;IAEE,4BAAsC;ErE+1P9C;EqE92PM;IAAgC,qBAA4B;ErEi3PlE;EqEh3PM;;IAEE,yBAAoC;ErEk3P5C;EqEh3PM;;IAEE,2BAAwC;ErEk3PhD;EqEh3PM;;IAEE,4BAA0C;ErEk3PlD;EqEh3PM;;IAEE,0BAAsC;ErEk3P9C;EqEj4PM;IAAgC,2BAA4B;ErEo4PlE;EqEn4PM;;IAEE,+BAAoC;ErEq4P5C;EqEn4PM;;IAEE,iCAAwC;ErEq4PhD;EqEn4PM;;IAEE,kCAA0C;ErEq4PlD;EqEn4PM;;IAEE,gCAAsC;ErEq4P9C;EqEp5PM;IAAgC,0BAA4B;ErEu5PlE;EqEt5PM;;IAEE,8BAAoC;ErEw5P5C;EqEt5PM;;IAEE,gCAAwC;ErEw5PhD;EqEt5PM;;IAEE,iCAA0C;ErEw5PlD;EqEt5PM;;IAEE,+BAAsC;ErEw5P9C;EqEv6PM;IAAgC,wBAA4B;ErE06PlE;EqEz6PM;;IAEE,4BAAoC;ErE26P5C;EqEz6PM;;IAEE,8BAAwC;ErE26PhD;EqEz6PM;;IAEE,+BAA0C;ErE26PlD;EqEz6PM;;IAEE,6BAAsC;ErE26P9C;EqE17PM;IAAgC,0BAA4B;ErE67PlE;EqE57PM;;IAEE,8BAAoC;ErE87P5C;EqE57PM;;IAEE,gCAAwC;ErE87PhD;EqE57PM;;IAEE,iCAA0C;ErE87PlD;EqE57PM;;IAEE,+BAAsC;ErE87P9C;EqE78PM;IAAgC,wBAA4B;ErEg9PlE;EqE/8PM;;IAEE,4BAAoC;ErEi9P5C;EqE/8PM;;IAEE,8BAAwC;ErEi9PhD;EqE/8PM;;IAEE,+BAA0C;ErEi9PlD;EqE/8PM;;IAEE,6BAAsC;ErEi9P9C;EqEz8PM;IAAwB,2BAA2B;ErE48PzD;EqE38PM;;IAEE,+BAA+B;ErE68PvC;EqE38PM;;IAEE,iCAAiC;ErE68PzC;EqE38PM;;IAEE,kCAAkC;ErE68P1C;EqE38PM;;IAEE,gCAAgC;ErE68PxC;EqE59PM;IAAwB,0BAA2B;ErE+9PzD;EqE99PM;;IAEE,8BAA+B;ErEg+PvC;EqE99PM;;IAEE,gCAAiC;ErEg+PzC;EqE99PM;;IAEE,iCAAkC;ErEg+P1C;EqE99PM;;IAEE,+BAAgC;ErEg+PxC;EqE/+PM;IAAwB,wBAA2B;ErEk/PzD;EqEj/PM;;IAEE,4BAA+B;ErEm/PvC;EqEj/PM;;IAEE,8BAAiC;ErEm/PzC;EqEj/PM;;IAEE,+BAAkC;ErEm/P1C;EqEj/PM;;IAEE,6BAAgC;ErEm/PxC;EqElgQM;IAAwB,0BAA2B;ErEqgQzD;EqEpgQM;;IAEE,8BAA+B;ErEsgQvC;EqEpgQM;;IAEE,gCAAiC;ErEsgQzC;EqEpgQM;;IAEE,iCAAkC;ErEsgQ1C;EqEpgQM;;IAEE,+BAAgC;ErEsgQxC;EqErhQM;IAAwB,wBAA2B;ErEwhQzD;EqEvhQM;;IAEE,4BAA+B;ErEyhQvC;EqEvhQM;;IAEE,8BAAiC;ErEyhQzC;EqEvhQM;;IAEE,+BAAkC;ErEyhQ1C;EqEvhQM;;IAEE,6BAAgC;ErEyhQxC;EqEnhQE;IAAmB,uBAAuB;ErEshQ5C;EqErhQE;;IAEE,2BAA2B;ErEuhQ/B;EqErhQE;;IAEE,6BAA6B;ErEuhQjC;EqErhQE;;IAEE,8BAA8B;ErEuhQlC;EqErhQE;;IAEE,4BAA4B;ErEuhQhC;AACF;;AcjiQI;EuDlDI;IAAgC,oBAA4B;ErEwlQlE;EqEvlQM;;IAEE,wBAAoC;ErEylQ5C;EqEvlQM;;IAEE,0BAAwC;ErEylQhD;EqEvlQM;;IAEE,2BAA0C;ErEylQlD;EqEvlQM;;IAEE,yBAAsC;ErEylQ9C;EqExmQM;IAAgC,0BAA4B;ErE2mQlE;EqE1mQM;;IAEE,8BAAoC;ErE4mQ5C;EqE1mQM;;IAEE,gCAAwC;ErE4mQhD;EqE1mQM;;IAEE,iCAA0C;ErE4mQlD;EqE1mQM;;IAEE,+BAAsC;ErE4mQ9C;EqE3nQM;IAAgC,yBAA4B;ErE8nQlE;EqE7nQM;;IAEE,6BAAoC;ErE+nQ5C;EqE7nQM;;IAEE,+BAAwC;ErE+nQhD;EqE7nQM;;IAEE,gCAA0C;ErE+nQlD;EqE7nQM;;IAEE,8BAAsC;ErE+nQ9C;EqE9oQM;IAAgC,uBAA4B;ErEipQlE;EqEhpQM;;IAEE,2BAAoC;ErEkpQ5C;EqEhpQM;;IAEE,6BAAwC;ErEkpQhD;EqEhpQM;;IAEE,8BAA0C;ErEkpQlD;EqEhpQM;;IAEE,4BAAsC;ErEkpQ9C;EqEjqQM;IAAgC,yBAA4B;ErEoqQlE;EqEnqQM;;IAEE,6BAAoC;ErEqqQ5C;EqEnqQM;;IAEE,+BAAwC;ErEqqQhD;EqEnqQM;;IAEE,gCAA0C;ErEqqQlD;EqEnqQM;;IAEE,8BAAsC;ErEqqQ9C;EqEprQM;IAAgC,uBAA4B;ErEurQlE;EqEtrQM;;IAEE,2BAAoC;ErEwrQ5C;EqEtrQM;;IAEE,6BAAwC;ErEwrQhD;EqEtrQM;;IAEE,8BAA0C;ErEwrQlD;EqEtrQM;;IAEE,4BAAsC;ErEwrQ9C;EqEvsQM;IAAgC,qBAA4B;ErE0sQlE;EqEzsQM;;IAEE,yBAAoC;ErE2sQ5C;EqEzsQM;;IAEE,2BAAwC;ErE2sQhD;EqEzsQM;;IAEE,4BAA0C;ErE2sQlD;EqEzsQM;;IAEE,0BAAsC;ErE2sQ9C;EqE1tQM;IAAgC,2BAA4B;ErE6tQlE;EqE5tQM;;IAEE,+BAAoC;ErE8tQ5C;EqE5tQM;;IAEE,iCAAwC;ErE8tQhD;EqE5tQM;;IAEE,kCAA0C;ErE8tQlD;EqE5tQM;;IAEE,gCAAsC;ErE8tQ9C;EqE7uQM;IAAgC,0BAA4B;ErEgvQlE;EqE/uQM;;IAEE,8BAAoC;ErEivQ5C;EqE/uQM;;IAEE,gCAAwC;ErEivQhD;EqE/uQM;;IAEE,iCAA0C;ErEivQlD;EqE/uQM;;IAEE,+BAAsC;ErEivQ9C;EqEhwQM;IAAgC,wBAA4B;ErEmwQlE;EqElwQM;;IAEE,4BAAoC;ErEowQ5C;EqElwQM;;IAEE,8BAAwC;ErEowQhD;EqElwQM;;IAEE,+BAA0C;ErEowQlD;EqElwQM;;IAEE,6BAAsC;ErEowQ9C;EqEnxQM;IAAgC,0BAA4B;ErEsxQlE;EqErxQM;;IAEE,8BAAoC;ErEuxQ5C;EqErxQM;;IAEE,gCAAwC;ErEuxQhD;EqErxQM;;IAEE,iCAA0C;ErEuxQlD;EqErxQM;;IAEE,+BAAsC;ErEuxQ9C;EqEtyQM;IAAgC,wBAA4B;ErEyyQlE;EqExyQM;;IAEE,4BAAoC;ErE0yQ5C;EqExyQM;;IAEE,8BAAwC;ErE0yQhD;EqExyQM;;IAEE,+BAA0C;ErE0yQlD;EqExyQM;;IAEE,6BAAsC;ErE0yQ9C;EqElyQM;IAAwB,2BAA2B;ErEqyQzD;EqEpyQM;;IAEE,+BAA+B;ErEsyQvC;EqEpyQM;;IAEE,iCAAiC;ErEsyQzC;EqEpyQM;;IAEE,kCAAkC;ErEsyQ1C;EqEpyQM;;IAEE,gCAAgC;ErEsyQxC;EqErzQM;IAAwB,0BAA2B;ErEwzQzD;EqEvzQM;;IAEE,8BAA+B;ErEyzQvC;EqEvzQM;;IAEE,gCAAiC;ErEyzQzC;EqEvzQM;;IAEE,iCAAkC;ErEyzQ1C;EqEvzQM;;IAEE,+BAAgC;ErEyzQxC;EqEx0QM;IAAwB,wBAA2B;ErE20QzD;EqE10QM;;IAEE,4BAA+B;ErE40QvC;EqE10QM;;IAEE,8BAAiC;ErE40QzC;EqE10QM;;IAEE,+BAAkC;ErE40Q1C;EqE10QM;;IAEE,6BAAgC;ErE40QxC;EqE31QM;IAAwB,0BAA2B;ErE81QzD;EqE71QM;;IAEE,8BAA+B;ErE+1QvC;EqE71QM;;IAEE,gCAAiC;ErE+1QzC;EqE71QM;;IAEE,iCAAkC;ErE+1Q1C;EqE71QM;;IAEE,+BAAgC;ErE+1QxC;EqE92QM;IAAwB,wBAA2B;ErEi3QzD;EqEh3QM;;IAEE,4BAA+B;ErEk3QvC;EqEh3QM;;IAEE,8BAAiC;ErEk3QzC;EqEh3QM;;IAEE,+BAAkC;ErEk3Q1C;EqEh3QM;;IAEE,6BAAgC;ErEk3QxC;EqE52QE;IAAmB,uBAAuB;ErE+2Q5C;EqE92QE;;IAEE,2BAA2B;ErEg3Q/B;EqE92QE;;IAEE,6BAA6B;ErEg3QjC;EqE92QE;;IAEE,8BAA8B;ErEg3QlC;EqE92QE;;IAEE,4BAA4B;ErEg3QhC;AACF;;Ac13QI;EuDlDI;IAAgC,oBAA4B;ErEi7QlE;EqEh7QM;;IAEE,wBAAoC;ErEk7Q5C;EqEh7QM;;IAEE,0BAAwC;ErEk7QhD;EqEh7QM;;IAEE,2BAA0C;ErEk7QlD;EqEh7QM;;IAEE,yBAAsC;ErEk7Q9C;EqEj8QM;IAAgC,0BAA4B;ErEo8QlE;EqEn8QM;;IAEE,8BAAoC;ErEq8Q5C;EqEn8QM;;IAEE,gCAAwC;ErEq8QhD;EqEn8QM;;IAEE,iCAA0C;ErEq8QlD;EqEn8QM;;IAEE,+BAAsC;ErEq8Q9C;EqEp9QM;IAAgC,yBAA4B;ErEu9QlE;EqEt9QM;;IAEE,6BAAoC;ErEw9Q5C;EqEt9QM;;IAEE,+BAAwC;ErEw9QhD;EqEt9QM;;IAEE,gCAA0C;ErEw9QlD;EqEt9QM;;IAEE,8BAAsC;ErEw9Q9C;EqEv+QM;IAAgC,uBAA4B;ErE0+QlE;EqEz+QM;;IAEE,2BAAoC;ErE2+Q5C;EqEz+QM;;IAEE,6BAAwC;ErE2+QhD;EqEz+QM;;IAEE,8BAA0C;ErE2+QlD;EqEz+QM;;IAEE,4BAAsC;ErE2+Q9C;EqE1/QM;IAAgC,yBAA4B;ErE6/QlE;EqE5/QM;;IAEE,6BAAoC;ErE8/Q5C;EqE5/QM;;IAEE,+BAAwC;ErE8/QhD;EqE5/QM;;IAEE,gCAA0C;ErE8/QlD;EqE5/QM;;IAEE,8BAAsC;ErE8/Q9C;EqE7gRM;IAAgC,uBAA4B;ErEghRlE;EqE/gRM;;IAEE,2BAAoC;ErEihR5C;EqE/gRM;;IAEE,6BAAwC;ErEihRhD;EqE/gRM;;IAEE,8BAA0C;ErEihRlD;EqE/gRM;;IAEE,4BAAsC;ErEihR9C;EqEhiRM;IAAgC,qBAA4B;ErEmiRlE;EqEliRM;;IAEE,yBAAoC;ErEoiR5C;EqEliRM;;IAEE,2BAAwC;ErEoiRhD;EqEliRM;;IAEE,4BAA0C;ErEoiRlD;EqEliRM;;IAEE,0BAAsC;ErEoiR9C;EqEnjRM;IAAgC,2BAA4B;ErEsjRlE;EqErjRM;;IAEE,+BAAoC;ErEujR5C;EqErjRM;;IAEE,iCAAwC;ErEujRhD;EqErjRM;;IAEE,kCAA0C;ErEujRlD;EqErjRM;;IAEE,gCAAsC;ErEujR9C;EqEtkRM;IAAgC,0BAA4B;ErEykRlE;EqExkRM;;IAEE,8BAAoC;ErE0kR5C;EqExkRM;;IAEE,gCAAwC;ErE0kRhD;EqExkRM;;IAEE,iCAA0C;ErE0kRlD;EqExkRM;;IAEE,+BAAsC;ErE0kR9C;EqEzlRM;IAAgC,wBAA4B;ErE4lRlE;EqE3lRM;;IAEE,4BAAoC;ErE6lR5C;EqE3lRM;;IAEE,8BAAwC;ErE6lRhD;EqE3lRM;;IAEE,+BAA0C;ErE6lRlD;EqE3lRM;;IAEE,6BAAsC;ErE6lR9C;EqE5mRM;IAAgC,0BAA4B;ErE+mRlE;EqE9mRM;;IAEE,8BAAoC;ErEgnR5C;EqE9mRM;;IAEE,gCAAwC;ErEgnRhD;EqE9mRM;;IAEE,iCAA0C;ErEgnRlD;EqE9mRM;;IAEE,+BAAsC;ErEgnR9C;EqE/nRM;IAAgC,wBAA4B;ErEkoRlE;EqEjoRM;;IAEE,4BAAoC;ErEmoR5C;EqEjoRM;;IAEE,8BAAwC;ErEmoRhD;EqEjoRM;;IAEE,+BAA0C;ErEmoRlD;EqEjoRM;;IAEE,6BAAsC;ErEmoR9C;EqE3nRM;IAAwB,2BAA2B;ErE8nRzD;EqE7nRM;;IAEE,+BAA+B;ErE+nRvC;EqE7nRM;;IAEE,iCAAiC;ErE+nRzC;EqE7nRM;;IAEE,kCAAkC;ErE+nR1C;EqE7nRM;;IAEE,gCAAgC;ErE+nRxC;EqE9oRM;IAAwB,0BAA2B;ErEipRzD;EqEhpRM;;IAEE,8BAA+B;ErEkpRvC;EqEhpRM;;IAEE,gCAAiC;ErEkpRzC;EqEhpRM;;IAEE,iCAAkC;ErEkpR1C;EqEhpRM;;IAEE,+BAAgC;ErEkpRxC;EqEjqRM;IAAwB,wBAA2B;ErEoqRzD;EqEnqRM;;IAEE,4BAA+B;ErEqqRvC;EqEnqRM;;IAEE,8BAAiC;ErEqqRzC;EqEnqRM;;IAEE,+BAAkC;ErEqqR1C;EqEnqRM;;IAEE,6BAAgC;ErEqqRxC;EqEprRM;IAAwB,0BAA2B;ErEurRzD;EqEtrRM;;IAEE,8BAA+B;ErEwrRvC;EqEtrRM;;IAEE,gCAAiC;ErEwrRzC;EqEtrRM;;IAEE,iCAAkC;ErEwrR1C;EqEtrRM;;IAEE,+BAAgC;ErEwrRxC;EqEvsRM;IAAwB,wBAA2B;ErE0sRzD;EqEzsRM;;IAEE,4BAA+B;ErE2sRvC;EqEzsRM;;IAEE,8BAAiC;ErE2sRzC;EqEzsRM;;IAEE,+BAAkC;ErE2sR1C;EqEzsRM;;IAEE,6BAAgC;ErE2sRxC;EqErsRE;IAAmB,uBAAuB;ErEwsR5C;EqEvsRE;;IAEE,2BAA2B;ErEysR/B;EqEvsRE;;IAEE,6BAA6B;ErEysRjC;EqEvsRE;;IAEE,8BAA8B;ErEysRlC;EqEvsRE;;IAEE,4BAA4B;ErEysRhC;AACF;;AsEzwRA;EAAkB,4GAA8C;AtE6wRhE;;AsEzwRA;EAAiB,8BAA8B;AtE6wR/C;;AsE5wRA;EAAiB,8BAA8B;AtEgxR/C;;AsE/wRA;EAAiB,8BAA8B;AtEmxR/C;;AsElxRA;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AvE+xRrB;;AsEhxRI;EAAwB,2BAA2B;AtEoxRvD;;AsEnxRI;EAAwB,4BAA4B;AtEuxRxD;;AsEtxRI;EAAwB,6BAA6B;AtE0xRzD;;AcrvRI;EwDvCA;IAAwB,2BAA2B;EtEiyRrD;EsEhyRE;IAAwB,4BAA4B;EtEmyRtD;EsElyRE;IAAwB,6BAA6B;EtEqyRvD;AACF;;AcjwRI;EwDvCA;IAAwB,2BAA2B;EtE6yRrD;EsE5yRE;IAAwB,4BAA4B;EtE+yRtD;EsE9yRE;IAAwB,6BAA6B;EtEizRvD;AACF;;Ac7wRI;EwDvCA;IAAwB,2BAA2B;EtEyzRrD;EsExzRE;IAAwB,4BAA4B;EtE2zRtD;EsE1zRE;IAAwB,6BAA6B;EtE6zRvD;AACF;;AczxRI;EwDvCA;IAAwB,2BAA2B;EtEq0RrD;EsEp0RE;IAAwB,4BAA4B;EtEu0RtD;EsEt0RE;IAAwB,6BAA6B;EtEy0RvD;AACF;;AsEp0RA;EAAmB,oCAAoC;AtEw0RvD;;AsEv0RA;EAAmB,oCAAoC;AtE20RvD;;AsE10RA;EAAmB,qCAAqC;AtE80RxD;;AsE10RA;EAAuB,2BAA0C;AtE80RjE;;AsE70RA;EAAuB,+BAA4C;AtEi1RnE;;AsEh1RA;EAAuB,2BAA2C;AtEo1RlE;;AsEn1RA;EAAuB,2BAAyC;AtEu1RhE;;AsEt1RA;EAAuB,8BAA2C;AtE01RlE;;AsEz1RA;EAAuB,6BAA6B;AtE61RpD;;AsEz1RA;EAAc,sBAAwB;AtE61RtC;;AwEp4RE;EACE,yBAAwB;AxEu4R5B;;AK73RE;EmELM,yBAA0E;AxEs4RlF;;AwE54RE;EACE,yBAAwB;AxE+4R5B;;AKr4RE;EmELM,yBAA0E;AxE84RlF;;AwEp5RE;EACE,yBAAwB;AxEu5R5B;;AK74RE;EmELM,yBAA0E;AxEs5RlF;;AwE55RE;EACE,yBAAwB;AxE+5R5B;;AKr5RE;EmELM,yBAA0E;AxE85RlF;;AwEp6RE;EACE,yBAAwB;AxEu6R5B;;AK75RE;EmELM,yBAA0E;AxEs6RlF;;AwE56RE;EACE,yBAAwB;AxE+6R5B;;AKr6RE;EmELM,yBAA0E;AxE86RlF;;AwEp7RE;EACE,yBAAwB;AxEu7R5B;;AK76RE;EmELM,yBAA0E;AxEs7RlF;;AwE57RE;EACE,yBAAwB;AxE+7R5B;;AKr7RE;EmELM,yBAA0E;AxE87RlF;;AsEv5RA;EAAa,yBAA6B;AtE25R1C;;AsE15RA;EAAc,yBAA6B;AtE85R3C;;AsE55RA;EAAiB,oCAAkC;AtEg6RnD;;AsE/5RA;EAAiB,0CAAkC;AtEm6RnD;;AsE/5RA;EAAwB,gCAAgC;AtEm6RxD;;AsEj6RA;EACE,iCAAiC;EACjC,oCAAoC;AtEo6RtC;;AsE/5RA;EAAc,yBAAyB;AtEm6RvC;;AyEh+RA;EACE,8BAA8B;AzEm+RhC;;AyEh+RA;EACE,6BAA6B;AzEm+R/B;;A0En+RE;ExEOF;;;IwEDM,4BAA4B;IAE5B,2BAA2B;E1Em+R/B;E0Eh+RE;IAEI,0BAA0B;E1Ei+RhC;E0Ex9RE;IACE,6BAA6B;E1E09RjC;EEvxRF;IwEpLM,gCAAgC;E1E88RpC;E0E58RE;;IAEE,yBvEzCY;IuE0CZ,wBAAwB;E1E88R5B;E0Et8RE;IACE,2BAA2B;E1Ew8R/B;E0Er8RE;;IAEE,wBAAwB;E1Eu8R5B;E0Ep8RE;;;IAGE,UAAU;IACV,SAAS;E1Es8Rb;E0En8RE;;IAEE,uBAAuB;E1Eq8R3B;E0E77RE;IACE,QvEkgCgC;EH67PpC;EE3+RF;IwE+CM,2BAA2C;E1E+7R/C;EYthSA;I8D0FI,2BAA2C;E1E+7R/C;EiC7gSF;IyCmFM,aAAa;E1E67RjB;EsC5hSF;IoCkGM,sBvEtFS;EHmhSb;EgBhiSF;I0DuGM,oCAAoC;E1E47RxC;E0E77RE;;IAKI,iCAAmC;E1E47RzC;EgB//RF;;I0D0EQ,oCAAsC;E1Ey7R5C;EgB96RF;I0DNM,cAAc;E1Eu7RlB;EiB7iSA;;;;IyD4HM,qBvEvHU;EH8iShB;EgBz8RF;I0DuBM,cAAc;IACd,qBvE7HY;EHkjShB;AACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n","/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --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\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.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,\n.col-auto, .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,\n.col-sm-auto, .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,\n.col-md-auto, .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,\n.col-lg-auto, .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,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion > .card:first-of-type:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.5em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .tooltip-arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .popover-arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .popover-arrow, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .popover-arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .popover-arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .popover-arrow, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .popover-arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .popover-arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$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\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2}) !default;\n$input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;\n$input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;\n\n$input-height: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2} + #{$input-height-border}) !default;\n$input-height-sm: calc(#{$input-line-height-sm * 1em} + #{$input-btn-padding-y-sm * 2} + #{$input-height-border}) !default;\n$input-height-lg: calc(#{$input-line-height-lg * 1em} + #{$input-btn-padding-y-lg * 2} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' 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\"), \"#\", \"%23\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\"), \"#\", \"%23\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: $border-radius !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-color: $white !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .5em !default;\n$badge-border-radius: $border-radius !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding-x: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\"), \"#\", \"%23\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive font sizes\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/master/LICENSE)\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n@if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize font size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-disable-class {\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity, which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-enable-class {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query($mq-value) {\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @content;\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @content;\n }\n }\n}\n\n// Responsive font size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Remove unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font size\n $rfs-static: if($rfs-font-size-unit == rem, #{$fs / $rfs-rem-value}rem, #{$fs}px);\n\n // Only add the media query if the font size is bigger than the minimum font size\n @if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n @else {\n // Calculate the minimum font size for $fs\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between $fs and the minimum font size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n\n // Breakpoint formatting\n $mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit});\n\n @include _rfs-disable-class {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n\n @include _rfs-media-query($mq-value) {\n @include _rfs-enable-class {\n font-size: $rfs-fluid;\n }\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixins use RFS to rescale the font size\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus($ignore-warning: true);\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\nselect.form-control {\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `<label>/<legend>` default\n @include font-size(inherit); // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: $input-padding-y;\n padding-bottom: $input-padding-y;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n height: $input-height-sm;\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.form-control-lg {\n height: $input-height-lg;\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n// stylelint-disable-next-line no-duplicate-selectors\nselect.form-control {\n &[size],\n &[multiple] {\n height: auto;\n }\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$form-grid-gutter-width / 2;\n margin-left: -$form-grid-gutter-width / 2;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: $form-grid-gutter-width / 2;\n padding-left: $form-grid-gutter-width / 2;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n // Use disabled attribute instead of :disabled pseudo-class\n // Workaround for: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11295231\n &[disabled] ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server-side validation.\n\n@each $state, $data in $form-validation-states {\n @include form-validation-state($state, map-get($data, color), map-get($data, icon));\n}\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group,\n .custom-select {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n @include deprecate(\"The `form-control-focus()` mixin\", \"v4.3.2\", \"v5\", $ignore-warning);\n}\n\n\n@mixin form-validation-state($state, $color, $icon) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: color-yiq($color);\n background-color: rgba($color, $form-feedback-tooltip-opacity);\n @include border-radius($form-feedback-tooltip-border-radius);\n }\n\n .form-control {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-image: $icon;\n background-repeat: no-repeat;\n background-position: center right $input-height-inner-quarter;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n .was-validated &:#{$state},\n &.is-#{$state} {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .custom-select {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $custom-select-feedback-icon-padding-right;\n background: $custom-select-background, $icon $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n\n .form-control-file {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .form-check-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n border-color: $color;\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:checked {\n ~ .custom-control-label::before {\n border-color: lighten($color, 10%);\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n &:not(:checked) ~ .custom-control-label::before {\n border-color: $color;\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-file-label {\n border-color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:focus {\n ~ .custom-file-label {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-family: $btn-font-family;\n font-weight: $btn-font-weight;\n color: $body-color;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n @include hover {\n color: $body-color;\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active {\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n text-decoration: $link-decoration;\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n box-shadow: none;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n border-color: $color;\n\n @include hover {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @include border-radius($border-radius, 0);\n}\n",".fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n\n // Generate the caret automatically\n @include caret;\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n @include font-size($dropdown-font-size);\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .dropdown-menu#{$infix}-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu#{$infix}-right {\n right: 0;\n left: auto;\n }\n }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n // Prevent dropdown overflow if there's no padding\n // See https://github.com/twbs/bootstrap/pull/27703\n @if $dropdown-padding-y == 0 {\n &:first-child {\n @include border-top-radius($dropdown-inner-border-radius);\n }\n\n &:last-child {\n @include border-bottom-radius($dropdown-inner-border-radius);\n }\n }\n\n @include hover-focus {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n pointer-events: none;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-padding-y $dropdown-item-padding-x;\n margin-bottom: 0; // for use with heading elements\n @include font-size($font-size-sm);\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n","@mixin caret-down {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n margin-left: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @if $direction == down {\n @include caret-down;\n } @else if $direction == up {\n @include caret-up;\n } @else if $direction == right {\n @include caret-right;\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n margin-right: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @include caret-left;\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 1 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n // Prevent double borders when buttons are next to each other\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-left: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropright &::after {\n margin-left: 0;\n }\n\n .dropleft &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > .btn,\n > .btn-group {\n width: 100%;\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-control-plaintext,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n // Add width 1% and flex-basis auto to ensure that button will not wrap out\n // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.\n width: 1%;\n margin-bottom: 0;\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .custom-select:focus,\n > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n }\n\n // Bring the custom file input above the label\n > .custom-file .custom-file-input:focus {\n z-index: 4;\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 3;\n }\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n @include font-size($input-font-size); // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: $input-height-lg;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: $input-height-sm;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n display: block;\n min-height: $font-size-base * $line-height-base;\n padding-left: $custom-control-gutter + $custom-control-indicator-size;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n border-color: $custom-control-indicator-checked-border-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n }\n\n &:focus:not(:checked) ~ .custom-control-label::before {\n border-color: $custom-control-indicator-focus-border-color;\n }\n\n &:not(:disabled):active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n border-color: $custom-control-indicator-active-border-color;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n // Use disabled attribute instead of :disabled pseudo-class\n // Workaround for: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11295231\n &[disabled] {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of pseudo-elements.\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n color: $custom-control-label-color;\n vertical-align: top;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n background-color: $custom-control-indicator-bg;\n border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background: no-repeat 50% / #{$custom-control-indicator-bg-size};\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: $custom-checkbox-indicator-icon-checked;\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n border-color: $custom-checkbox-indicator-indeterminate-border-color;\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-indeterminate;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n &:indeterminate ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: $custom-radio-indicator-icon-checked;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// switches\n//\n// Tweak a few things for switches\n\n.custom-switch {\n padding-left: $custom-switch-width + $custom-control-gutter;\n\n .custom-control-label {\n &::before {\n left: -($custom-switch-width + $custom-control-gutter);\n width: $custom-switch-width;\n pointer-events: all;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n }\n\n &::after {\n top: calc(#{(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2)} + #{$custom-control-indicator-border-width * 2});\n left: calc(#{-($custom-switch-width + $custom-control-gutter)} + #{$custom-control-indicator-border-width * 2});\n width: $custom-switch-indicator-size;\n height: $custom-switch-indicator-size;\n background-color: $custom-control-indicator-border-color;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n @include transition(transform .15s ease-in-out, $custom-forms-transition);\n }\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-color: $custom-control-indicator-bg;\n transform: translateX($custom-switch-width - $custom-control-indicator-size);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n font-family: $custom-select-font-family;\n @include font-size($custom-select-font-size);\n font-weight: $custom-select-font-weight;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-background;\n background-color: $custom-select-bg;\n border: $custom-select-border-width solid $custom-select-border-color;\n @include border-radius($custom-select-border-radius, 0);\n @include box-shadow($custom-select-box-shadow);\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n box-shadow: $custom-select-box-shadow, $custom-select-focus-box-shadow;\n } @else {\n box-shadow: $custom-select-focus-box-shadow;\n }\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n display: none;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y-sm;\n padding-bottom: $custom-select-padding-y-sm;\n padding-left: $custom-select-padding-x-sm;\n @include font-size($custom-select-font-size-sm);\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y-lg;\n padding-bottom: $custom-select-padding-y-lg;\n padding-left: $custom-select-padding-x-lg;\n @include font-size($custom-select-font-size-lg);\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-label {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n }\n\n // Use disabled attribute instead of :disabled pseudo-class\n // Workaround for: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11295231\n &[disabled] ~ .custom-file-label {\n background-color: $custom-file-disabled-bg;\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n\n ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n font-family: $custom-file-font-family;\n font-weight: $custom-file-font-weight;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: $custom-file-height-inner;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: inherit;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n width: 100%;\n height: calc(#{$custom-range-thumb-height} + #{$custom-range-thumb-focus-box-shadow-width * 2});\n padding: 0; // Need to reset padding\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: none;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n // No box-shadow() mixin for focus accessibility.\n &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent; // Why?\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent;\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: 0; // Edge specific\n margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-ms-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: transparent;\n border-color: transparent;\n border-width: $custom-range-thumb-height / 2;\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-fill-lower {\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &::-ms-fill-upper {\n margin-right: 15px; // arbitrary?\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &:disabled {\n &::-webkit-slider-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-webkit-slider-runnable-track {\n cursor: default;\n }\n\n &::-moz-range-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-moz-range-track {\n cursor: default;\n }\n\n &::-ms-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n }\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n @include transition($custom-forms-transition);\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n pointer-events: none;\n cursor: default;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properties so that content nested within behave properly.\n > .container,\n > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n @include font-size($navbar-brand-font-size);\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n @include font-size($navbar-toggler-font-size);\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n > .container,\n > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n > .container,\n > .container-fluid {\n flex-wrap: nowrap;\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-brand-color;\n\n @include hover-focus {\n color: $navbar-light-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-light-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-brand-color;\n\n @include hover-focus {\n color: $navbar-dark-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-dark-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group:first-child {\n .list-group-item:first-child {\n @include border-top-radius($card-border-radius);\n }\n }\n\n > .list-group:last-child {\n .list-group-item:last-child {\n @include border-bottom-radius($card-border-radius);\n }\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n padding: $card-spacer-x;\n color: $card-color;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -$card-spacer-y / 2;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n\n + .list-group {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -$card-spacer-x / 2;\n margin-bottom: -$card-spacer-y;\n margin-left: -$card-spacer-x / 2;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -$card-spacer-x / 2;\n margin-left: -$card-spacer-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n}\n\n.card-img {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-radius($card-inner-border-radius);\n}\n\n// Card image caps\n.card-img-top {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n display: flex;\n flex-direction: column;\n\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n display: flex;\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n display: flex;\n flex-direction: column;\n\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-right-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-left-radius: 0;\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n orphans: 1;\n widows: 1;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n > .card {\n overflow: hidden;\n\n &:not(:first-of-type) {\n .card-header:first-child {\n @include border-radius(0);\n }\n\n &:not(:last-of-type) {\n border-bottom: 0;\n @include border-radius(0);\n }\n }\n\n &:first-of-type:not(:last-of-type) {\n border-bottom: 0;\n @include border-bottom-radius(0);\n }\n\n &:last-of-type {\n @include border-top-radius(0);\n }\n\n .card-header {\n margin-bottom: -$card-border-width;\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding-x;\n\n &::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding-x;\n color: $breadcrumb-divider-color;\n content: $breadcrumb-divider;\n }\n }\n\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n // without `<ul>`s. The `::before` pseudo-element generates an element\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n //\n // To trick IE into suppressing the underline, we give the pseudo-element an\n // underline and then immediately remove it.\n + .breadcrumb-item:hover::before {\n text-decoration: underline;\n }\n // stylelint-disable-next-line no-duplicate-selectors\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 2;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 1;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n @include font-size($badge-font-size);\n font-weight: $badge-font-weight;\n line-height: 1;\n color: $badge-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n color: $jumbotron-color;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: $close-font-size + $alert-padding-x * 2;\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","// Disable animation if transitions are disabled\n@if $enable-transitions {\n @keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n @include font-size($progress-font-size);\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n .progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -$list-group-border-width;\n color: $list-group-color;\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius($list-group-border-radius);\n }\n\n &:last-child {\n margin-bottom: 0;\n @include border-bottom-radius($list-group-border-radius);\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n pointer-events: none;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .list-group-horizontal#{$infix} {\n flex-direction: row;\n\n .list-group-item {\n margin-right: -$list-group-border-width;\n margin-bottom: 0;\n\n &:first-child {\n @include border-left-radius($list-group-border-radius);\n @include border-top-right-radius(0);\n }\n\n &:last-child {\n margin-right: 0;\n @include border-right-radius($list-group-border-radius);\n @include border-bottom-left-radius(0);\n }\n }\n }\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n .list-group-item {\n border-right: 0;\n border-left: 0;\n @include border-radius(0);\n\n &:last-child {\n margin-bottom: -$list-group-border-width;\n }\n }\n\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n\n &:last-child {\n .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n @include font-size($close-font-size);\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n // Override <a>'s hover style\n @include hover {\n color: $close-color;\n text-decoration: none;\n }\n\n &:not(:disabled):not(.disabled) {\n @include hover-focus {\n opacity: .75;\n }\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n pointer-events: none;\n}\n",".toast {\n max-width: $toast-max-width;\n overflow: hidden; // cheap rounded corners on nested items\n @include font-size($toast-font-size);\n color: $toast-color;\n background-color: $toast-background-color;\n background-clip: padding-box;\n border: $toast-border-width solid $toast-border-color;\n box-shadow: $toast-box-shadow;\n backdrop-filter: blur(10px);\n opacity: 0;\n @include border-radius($toast-border-radius);\n\n &:not(:last-child) {\n margin-bottom: $toast-padding-x;\n }\n\n &.showing {\n opacity: 1;\n }\n\n &.show {\n display: block;\n opacity: 1;\n }\n\n &.hide {\n display: none;\n }\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: $toast-padding-y $toast-padding-x;\n color: $toast-header-color;\n background-color: $toast-header-background-color;\n background-clip: padding-box;\n border-bottom: $toast-border-width solid $toast-header-border-color;\n}\n\n.toast-body {\n padding: $toast-padding-x; // apply to both vertical and horizontal\n}\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n // Kill the scroll on the body\n overflow: hidden;\n\n .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: $modal-fade-transform;\n }\n .modal.show & {\n transform: $modal-show-transform;\n }\n}\n\n.modal-dialog-scrollable {\n display: flex; // IE10/11\n max-height: calc(100% - #{$modal-dialog-margin * 2});\n\n .modal-content {\n max-height: calc(100vh - #{$modal-dialog-margin * 2}); // IE10/11\n overflow: hidden;\n }\n\n .modal-header,\n .modal-footer {\n flex-shrink: 0;\n }\n\n .modal-body {\n overflow-y: auto;\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - #{$modal-dialog-margin * 2});\n\n // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\n &::before {\n display: block; // IE10\n height: calc(100vh - #{$modal-dialog-margin * 2});\n content: \"\";\n }\n\n // Ensure `.modal-body` shows scrollbar (IE10/11)\n &.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n\n .modal-content {\n max-height: none;\n }\n\n &::before {\n content: none;\n }\n }\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n color: $modal-content-color;\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n width: 100vw;\n height: 100vh;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-border-radius);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when should there be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n @include border-bottom-radius($modal-content-border-radius);\n\n // Easily place margin between footer elements\n > :not(:first-child) { margin-left: .25rem; }\n > :not(:last-child) { margin-right: .25rem; }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-scrollable {\n max-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});\n\n .modal-content {\n max-height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});\n }\n }\n\n .modal-dialog-centered {\n min-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});\n\n &::before {\n height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});\n }\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg,\n .modal-xl {\n max-width: $modal-lg;\n }\n}\n\n@include media-breakpoint-up(xl) {\n .modal-xl { max-width: $modal-xl; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .tooltip-arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .tooltip-arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .tooltip-arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .tooltip-arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .tooltip-arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .popover-arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $border-radius-lg;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n > .popover-arrow {\n bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n\n &::before {\n bottom: 0;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n &::after {\n bottom: $popover-border-width;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n > .popover-arrow {\n left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n left: 0;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n &::after {\n left: $popover-border-width;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n > .popover-arrow {\n top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n\n &::before {\n top: 0;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n &::after {\n top: $popover-border-width;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-color;\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: -$popover-arrow-width / 2;\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n > .popover-arrow {\n right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n right: 0;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-outer-color;\n }\n\n &::after {\n right: $popover-border-width;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n @include font-size($font-size-base);\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});\n @include border-top-radius($offset-border-width);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n @include clearfix();\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-left,\n .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n @include transition(0s $carousel-transition-duration opacity);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n @include transition($carousel-control-transition);\n\n // Hover/focus state\n @include hover-focus {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: $carousel-control-hover-opacity;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: no-repeat 50% / 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: $carousel-control-prev-icon-bg;\n}\n.carousel-control-next-icon {\n background-image: $carousel-control-next-icon-bg;\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n cursor: pointer;\n background-color: $carousel-indicator-active-bg;\n background-clip: padding-box;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-top: $carousel-indicator-hit-area-height solid transparent;\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\n opacity: .5;\n @include transition($carousel-indicator-transition);\n }\n\n .active {\n opacity: 1;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: (100% - $carousel-caption-width) / 2;\n bottom: 20px;\n left: (100% - $carousel-caption-width) / 2;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","//\n// Rotating border\n//\n\n@keyframes spinner-border {\n to { transform: rotate(360deg); }\n}\n\n.spinner-border {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n border: $spinner-border-width solid currentColor;\n border-right-color: transparent;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n background-color: currentColor;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n .bg-#{$color} {\n background-color: $value !important;\n }\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable property-blacklist, declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded-sm {\n border-radius: $border-radius-sm !important;\n}\n\n.rounded {\n border-radius: $border-radius !important;\n}\n\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-lg {\n border-radius: $border-radius-lg !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: $rounded-pill !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\n $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\n $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\n\n .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\n &::before {\n padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { float: left !important; }\n .float#{$infix}-right { float: right !important; }\n .float#{$infix}-none { float: none !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $overflows {\n .overflow-#{$value} { overflow: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n\n// Viewport additional helpers\n\n.min-vw-100 { min-width: 100vw !important; }\n.min-vh-100 { min-height: 100vh !important; }\n\n.vw-100 { width: 100vw !important; }\n.vh-100 { height: 100vh !important; }\n","//\n// Stretched link\n//\n\n.stretched-link {\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n // Just in case `pointer-events: none` is set on a parent\n pointer-events: auto;\n content: \"\";\n // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\n background-color: rgba(0, 0, 0, 0);\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace !important; }\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-wrap { white-space: normal !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate; }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-weight-bolder { font-weight: $font-weight-bolder !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-decoration-none { text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important; // IE & < Edge 18\n overflow-wrap: break-word !important;\n}\n\n// Reset\n\n.text-reset { color: inherit !important; }\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color) {\n #{$parent} {\n color: $color !important;\n }\n @if $emphasized-link-hover-darken-percentage != 0 {\n a#{$parent} {\n @include hover-focus {\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Visibility utilities\n//\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: $black !important; // Black prints faster\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid $black;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: $white !important;\n }\n }\n\n .table-bordered {\n th,\n td {\n border: 1px solid $gray-300 !important;\n }\n }\n\n .table-dark {\n color: inherit;\n\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $table-border-color;\n }\n }\n\n .table .thead-dark th {\n color: inherit;\n border-color: $table-border-color;\n }\n\n // Bootstrap specific changes end\n }\n}\n"]}
\ No newline at end of file diff --git a/dist/css/bootstrap.min.css b/dist/css/bootstrap.min.css index 34b8df3f02..06ab46b8f1 100644 --- a/dist/css/bootstrap.min.css +++ b/dist/css/bootstrap.min.css @@ -3,5 +3,5 @@ * Copyright 2011-2019 The Bootstrap Authors * Copyright 2011-2019 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:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--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:transparent}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;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{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;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}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;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}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}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}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}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}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}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;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;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-unstyled{padding-left:0;list-style:none}.list-inline{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{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.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-break: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:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.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-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.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-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.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-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.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.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.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.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.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.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.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.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.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.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.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{border:1px solid #dee2e6}.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{background-color:#9fcdff}.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{background-color:#c8cbcf}.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{background-color:#b1dfbb}.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{background-color:#abdde5}.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{background-color:#ffe8a1}.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{background-color:#f1b0b7}.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{background-color:#ececf6}.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{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.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:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.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:767.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:991.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:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}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-top:.375rem;padding-bottom:.375rem;margin-bottom:0;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]{height:auto}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{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}.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,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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:center right calc(.375em + .1875rem);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)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.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((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 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,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.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~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.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,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.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}.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,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);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)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.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((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 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,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%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)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.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~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.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,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.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:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;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}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.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: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: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: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: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: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: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: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;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.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:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.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:""}.dropleft .dropdown-toggle::after{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:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{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 input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.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%;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;z-index:-1;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{color:#6c757d}.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{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";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,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 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,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 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,%3csvg xmlns='http://www.w3.org/2000/svg' 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:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .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;-webkit-transform:translateX(.75rem);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:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;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-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{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);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{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{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.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;-webkit-appearance:none;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;-moz-appearance:none;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{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.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;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{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 center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.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{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.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{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.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{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{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{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{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{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.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,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.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:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.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:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.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-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{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:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.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: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:2;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:1;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:576px){.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}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;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,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;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}.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;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.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-horizontal{flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom: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;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);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:rgba(255,255,255,.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:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.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);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 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 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;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.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)}.modal-sm{max-width:300px}}@media (min-width:992px){.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 .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .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] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-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] .tooltip-arrow,.bs-tooltip-right .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .tooltip-arrow::before,.bs-tooltip-right .tooltip-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] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-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] .tooltip-arrow,.bs-tooltip-left .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .tooltip-arrow::before,.bs-tooltip-left .tooltip-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{position:absolute;top:0;left:0;z-index:1060;display:block;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;width:1rem;height:.5rem;margin:0 .3rem}.popover .popover-arrow::after,.popover .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]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-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]>.popover-arrow,.bs-popover-right>.popover-arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.popover-arrow::before,.bs-popover-right>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.popover-arrow::after,.bs-popover-right>.popover-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]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .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]>.popover-arrow,.bs-popover-left>.popover-arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.popover-arrow::before,.bs-popover-left>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.popover-arrow::after,.bs-popover-left>.popover-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%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-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){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;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:0s .6s opacity}@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,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-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}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;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;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-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:576px){.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:768px){.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:992px){.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.857143%}.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:576px){.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:768px){.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:992px){.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:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.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}}.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:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;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}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.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:576px){.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:768px){.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:992px){.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}}.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:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.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:rgba(255,255,255,.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-break:break-word!important;overflow-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}body{min-width:992px!important}.container{min-width:992px!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}} + */: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:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--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:transparent}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;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[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;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}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;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}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}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}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}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}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}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;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;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-unstyled{padding-left:0;list-style:none}.list-inline{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{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.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-break: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:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.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-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.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-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.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-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.333333%;max-width:8.333333%}.col-2{flex:0 0 16.666667%;max-width:16.666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.333333%;max-width:33.333333%}.col-5{flex:0 0 41.666667%;max-width:41.666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.333333%;max-width:58.333333%}.col-8{flex:0 0 66.666667%;max-width:66.666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.333333%;max-width:83.333333%}.col-11{flex:0 0 91.666667%;max-width:91.666667%}.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.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.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.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.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.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.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.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.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.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.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{border:1px solid #dee2e6}.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{background-color:#9fcdff}.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{background-color:#c8cbcf}.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{background-color:#b1dfbb}.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{background-color:#abdde5}.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{background-color:#ffe8a1}.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{background-color:#f1b0b7}.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{background-color:#ececf6}.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{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.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:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.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:767.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:991.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:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}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-top:.375rem;padding-bottom:.375rem;margin-bottom:0;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]{height:auto}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{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}.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,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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:center right calc(.375em + .1875rem);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)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.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((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 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,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.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~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.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,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.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}.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,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);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)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.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((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 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,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%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)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.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~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.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,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.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:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.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;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;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}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;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:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;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:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;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:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;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:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;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:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;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:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;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:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;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;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.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:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.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:""}.dropleft .dropdown-toggle::after{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:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{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 input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.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%;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;z-index:-1;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{color:#6c757d}.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{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";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,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 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,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 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,%3csvg xmlns='http://www.w3.org/2000/svg' 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:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .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;-webkit-transform:translateX(.75rem);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:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;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-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{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);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{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{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.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;-webkit-appearance:none;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;-moz-appearance:none;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{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.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;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{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 center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.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{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.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{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.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{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{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{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{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{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.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,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.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:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.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:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.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-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{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:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.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}.breadcrumb-item+.breadcrumb-item:hover::before{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:2;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:1;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 .5em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.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 .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;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,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;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}.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;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.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-horizontal{flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom: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;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);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:rgba(255,255,255,.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:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.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);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 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 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;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.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)}.modal-sm{max-width:300px}}@media (min-width:992px){.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 .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .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] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-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] .tooltip-arrow,.bs-tooltip-right .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .tooltip-arrow::before,.bs-tooltip-right .tooltip-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] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-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] .tooltip-arrow,.bs-tooltip-left .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .tooltip-arrow::before,.bs-tooltip-left .tooltip-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{position:absolute;top:0;left:0;z-index:1060;display:block;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;width:1rem;height:.5rem;margin:0 .3rem}.popover .popover-arrow::after,.popover .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]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-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]>.popover-arrow,.bs-popover-right>.popover-arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.popover-arrow::before,.bs-popover-right>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.popover-arrow::after,.bs-popover-right>.popover-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]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .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]>.popover-arrow,.bs-popover-left>.popover-arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.popover-arrow::before,.bs-popover-left>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.popover-arrow::after,.bs-popover-left>.popover-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%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-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){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;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:0s .6s opacity}@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,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-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}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;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}.bg-secondary{background-color:#6c757d!important}.bg-success{background-color:#28a745!important}.bg-info{background-color:#17a2b8!important}.bg-warning{background-color:#ffc107!important}.bg-danger{background-color:#dc3545!important}.bg-light{background-color:#f8f9fa!important}.bg-dark{background-color:#343a40!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;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-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:576px){.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:768px){.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:992px){.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.857143%}.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:576px){.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:768px){.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:992px){.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:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.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}}.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:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;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}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.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:576px){.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:768px){.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:992px){.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}}.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:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.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:rgba(255,255,255,.5)!important}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-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}body{min-width:992px!important}.container{min-width:992px!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}} /*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file diff --git a/dist/css/bootstrap.min.css.map b/dist/css/bootstrap.min.css.map index 6ec9544984..d132c6e39b 100644 --- a/dist/css/bootstrap.min.css.map +++ b/dist/css/bootstrap.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"AAAA;;;;;ACAA,MAGI,OAAA,QAAA,SAAA,QAAA,SAAA,QAAA,OAAA,QAAA,MAAA,QAAA,SAAA,QAAA,SAAA,QAAA,QAAA,QAAA,OAAA,QAAA,OAAA,QAAA,QAAA,KAAA,OAAA,QAAA,YAAA,QAIA,UAAA,QAAA,YAAA,QAAA,UAAA,QAAA,OAAA,QAAA,UAAA,QAAA,SAAA,QAAA,QAAA,QAAA,OAAA,QAIA,gBAAA,EAAA,gBAAA,MAAA,gBAAA,MAAA,gBAAA,MAAA,gBAAA,OAKF,yBAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBACA,wBAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UCCF,ECqBA,QADA,SDjBE,WAAA,WAGF,KACE,YAAA,WACA,YAAA,KACA,yBAAA,KACA,4BAAA,YAMF,QAAA,MAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,IAAA,QACE,QAAA,MAUF,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBEgFI,UAAA,KF9EJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,KACA,iBAAA,KGYF,sBHHE,QAAA,YASF,GACE,WAAA,YACA,OAAA,EACA,SAAA,QAaF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KCZF,0BDuBA,YAEE,gBAAA,UACA,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EACA,iCAAA,KAAA,yBAAA,KAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QCjBF,GDoBA,GCrBA,GDwBE,WAAA,EACA,cAAA,KAGF,MCpBA,MACA,MAFA,MDyBE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,ECrBA,ODuBE,YAAA,OAGF,MEpFI,UAAA,IF6FJ,IC1BA,ID4BE,SAAA,SE/FE,UAAA,IFiGF,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YI5KA,QJ+KE,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KIxLA,oCAAA,oCJ2LE,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EC5BJ,KACA,IDoCA,ICnCA,KDuCE,YAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UErJE,UAAA,IFyJJ,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,IAGE,SAAA,OACA,eAAA,OAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAGE,WAAA,QAQF,MAEE,QAAA,aACA,cAAA,MAMF,OAEE,cAAA,EAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBCvEF,OD0EA,MCxEA,SADA,OAEA,SD4EE,OAAA,EACA,YAAA,QEtPE,UAAA,QFwPF,YAAA,QAGF,OC1EA,MD4EE,SAAA,QAGF,OC1EA,OD4EE,eAAA,KAMF,OACE,UAAA,OC1EF,cACA,aACA,cD+EA,OAIE,mBAAA,OC9EF,6BACA,4BACA,6BDiFE,sBAKI,OAAA,QCjFN,gCACA,+BACA,gCDqFA,yBAIE,QAAA,EACA,aAAA,KCpFF,qBDuFA,kBAEE,WAAA,WACA,QAAA,EAIF,iBCvFA,2BACA,kBAFA,iBDiGE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MElSI,UAAA,OFoSJ,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SGtGF,yCFGA,yCDyGE,OAAA,KGvGF,cH+GE,eAAA,KACA,mBAAA,KG3GF,yCHmHE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UACA,OAAA,QAGF,SACE,QAAA,KGxHF,SH8HE,QAAA,eCvHF,IAAK,IAAK,IAAK,IAAK,IAAK,IIpWzB,GAAA,GAAA,GAAA,GAAA,GAAA,GAEE,cAAA,MAEA,YAAA,IACA,YAAA,IAIF,IAAA,GHgHM,UAAA,OG/GN,IAAA,GH+GM,UAAA,KG9GN,IAAA,GH8GM,UAAA,QG7GN,IAAA,GH6GM,UAAA,OG5GN,IAAA,GH4GM,UAAA,QG3GN,IAAA,GH2GM,UAAA,KGzGN,MHyGM,UAAA,QGvGJ,YAAA,IAIF,WHmGM,UAAA,KGjGJ,YAAA,IACA,YAAA,IAEF,WH8FM,UAAA,OG5FJ,YAAA,IACA,YAAA,IAEF,WHyFM,UAAA,OGvFJ,YAAA,IACA,YAAA,IAEF,WHoFM,UAAA,OGlFJ,YAAA,IACA,YAAA,ILyBF,GKhBE,WAAA,KACA,cAAA,KACA,OAAA,EACA,WAAA,IAAA,MAAA,eJmXF,OI3WA,MHMI,UAAA,IGHF,YAAA,IJ8WF,MI3WA,KAEE,QAAA,KACA,iBAAA,QAQF,eC/EE,aAAA,EACA,WAAA,KDmFF,aCpFE,aAAA,EACA,WAAA,KDsFF,kBACE,QAAA,aADF,mCAII,aAAA,MAUJ,YHjCI,UAAA,IGmCF,eAAA,UAIF,YACE,cAAA,KHeI,UAAA,QGXN,mBACE,QAAA,MH7CE,UAAA,IG+CF,MAAA,QAHF,2BAMI,QAAA,aEnHJ,WCIE,UAAA,KAGA,OAAA,KDDF,eACE,QAAA,OACA,iBAAA,KACA,OAAA,IAAA,MAAA,QEXE,cAAA,ODMF,UAAA,KAGA,OAAA,KDcF,QAEE,QAAA,aAGF,YACE,cAAA,MACA,YAAA,EAGF,gBLkCI,UAAA,IKhCF,MAAA,QGvCF,KRuEI,UAAA,MQrEF,MAAA,QACA,WAAA,WAGA,OACE,MAAA,QAKJ,IACE,QAAA,MAAA,MR0DE,UAAA,MQxDF,MAAA,KACA,iBAAA,QDZE,cAAA,MCQJ,QASI,QAAA,ERkDA,UAAA,KQhDA,YAAA,IVyMJ,IUlME,QAAA,MRyCE,UAAA,MQvCF,MAAA,QAHF,SR0CI,UAAA,QQlCA,MAAA,QACA,WAAA,OAKJ,gBACE,WAAA,MACA,WAAA,OCzCA,WCAA,MAAA,KACA,cAAA,KACA,aAAA,KACA,aAAA,KACA,YAAA,KCmDE,yBFvDF,WCYI,UAAA,OC2CF,yBFvDF,WCYI,UAAA,OC2CF,yBFvDF,WCYI,UAAA,OC2CF,0BFvDF,WCYI,UAAA,QDAJ,iBCZA,MAAA,KACA,cAAA,KACA,aAAA,KACA,aAAA,KACA,YAAA,KDkBA,KCJA,QAAA,KACA,UAAA,KACA,aAAA,MACA,YAAA,MDOA,YACE,aAAA,EACA,YAAA,EAFF,iBVujBF,0BUjjBM,cAAA,EACA,aAAA,EGjCJ,KAAA,OAAA,QAAA,QAAA,QAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,ObulBF,UAEqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aAFqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aAFkJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,aAEqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aa1lBI,SAAA,SACA,MAAA,KACA,cAAA,KACA,aAAA,KAmBE,KACE,WAAA,EACA,UAAA,EACA,UAAA,KAEF,UACE,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KAIA,OFFN,KAAA,EAAA,EAAA,UAIA,UAAA,UEFM,OFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,OFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,OFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,OFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,OFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,OFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,OFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,OFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,QFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,QFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,QFFN,KAAA,EAAA,EAAA,KAIA,UAAA,KEGI,aAAwB,MAAA,GAExB,YAAuB,MAAA,GAGrB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,UAAwB,MAAA,GAAxB,UAAwB,MAAA,GAAxB,UAAwB,MAAA,GAMtB,UFTR,YAAA,UESQ,UFTR,YAAA,WESQ,UFTR,YAAA,IESQ,UFTR,YAAA,WESQ,UFTR,YAAA,WESQ,UFTR,YAAA,IESQ,UFTR,YAAA,WESQ,UFTR,YAAA,WESQ,UFTR,YAAA,IESQ,WFTR,YAAA,WESQ,WFTR,YAAA,WCWE,yBC9BE,QACE,WAAA,EACA,UAAA,EACA,UAAA,KAEF,aACE,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KAIA,UFFN,KAAA,EAAA,EAAA,UAIA,UAAA,UEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,KAIA,UAAA,KEGI,gBAAwB,MAAA,GAExB,eAAuB,MAAA,GAGrB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAMtB,aFTR,YAAA,EESQ,aFTR,YAAA,UESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,cFTR,YAAA,WESQ,cFTR,YAAA,YCWE,yBC9BE,QACE,WAAA,EACA,UAAA,EACA,UAAA,KAEF,aACE,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KAIA,UFFN,KAAA,EAAA,EAAA,UAIA,UAAA,UEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,KAIA,UAAA,KEGI,gBAAwB,MAAA,GAExB,eAAuB,MAAA,GAGrB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAMtB,aFTR,YAAA,EESQ,aFTR,YAAA,UESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,cFTR,YAAA,WESQ,cFTR,YAAA,YCWE,yBC9BE,QACE,WAAA,EACA,UAAA,EACA,UAAA,KAEF,aACE,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KAIA,UFFN,KAAA,EAAA,EAAA,UAIA,UAAA,UEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,KAIA,UAAA,KEGI,gBAAwB,MAAA,GAExB,eAAuB,MAAA,GAGrB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAMtB,aFTR,YAAA,EESQ,aFTR,YAAA,UESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,cFTR,YAAA,WESQ,cFTR,YAAA,YCWE,0BC9BE,QACE,WAAA,EACA,UAAA,EACA,UAAA,KAEF,aACE,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KAIA,UFFN,KAAA,EAAA,EAAA,UAIA,UAAA,UEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,KAIA,UAAA,KEGI,gBAAwB,MAAA,GAExB,eAAuB,MAAA,GAGrB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAMtB,aFTR,YAAA,EESQ,aFTR,YAAA,UESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,cFTR,YAAA,WESQ,cFTR,YAAA,YG7CF,OACE,MAAA,KACA,cAAA,KACA,MAAA,Qdi1CF,Ucp1CA,UAQI,QAAA,OACA,eAAA,IACA,WAAA,IAAA,MAAA,QAVJ,gBAcI,eAAA,OACA,cAAA,IAAA,MAAA,QAfJ,mBAmBI,WAAA,IAAA,MAAA,Qdi1CJ,acx0CA,aAGI,QAAA,MASJ,gBACE,OAAA,IAAA,MAAA,Qdo0CF,mBcr0CA,mBAKI,OAAA,IAAA,MAAA,Qdq0CJ,yBc10CA,yBAWM,oBAAA,Ids0CN,8BAFA,qBc/zCA,qBdg0CA,2Bc3zCI,OAAA,EAQJ,yCAEI,iBAAA,gBX/DF,4BW2EI,MAAA,QACA,iBAAA,iBCnFJ,efu4CF,kBADA,kBel4CM,iBAAA,Qf04CN,2BAFA,kBe54CE,kBf64CF,wBej4CQ,aAAA,QZLN,kCYiBM,iBAAA,QALN,qCfo4CF,qCe33CU,iBAAA,QA5BR,iBf65CF,oBADA,oBex5CM,iBAAA,Qfg6CN,6BAFA,oBel6CE,oBfm6CF,0Bev5CQ,aAAA,QZLN,oCYiBM,iBAAA,QALN,uCf05CF,uCej5CU,iBAAA,QA5BR,efm7CF,kBADA,kBe96CM,iBAAA,Qfs7CN,2BAFA,kBex7CE,kBfy7CF,wBe76CQ,aAAA,QZLN,kCYiBM,iBAAA,QALN,qCfg7CF,qCev6CU,iBAAA,QA5BR,Yfy8CF,eADA,eep8CM,iBAAA,Qf48CN,wBAFA,ee98CE,ef+8CF,qBen8CQ,aAAA,QZLN,+BYiBM,iBAAA,QALN,kCfs8CF,kCe77CU,iBAAA,QA5BR,ef+9CF,kBADA,kBe19CM,iBAAA,Qfk+CN,2BAFA,kBep+CE,kBfq+CF,wBez9CQ,aAAA,QZLN,kCYiBM,iBAAA,QALN,qCf49CF,qCen9CU,iBAAA,QA5BR,cfq/CF,iBADA,iBeh/CM,iBAAA,Qfw/CN,0BAFA,iBe1/CE,iBf2/CF,uBe/+CQ,aAAA,QZLN,iCYiBM,iBAAA,QALN,oCfk/CF,oCez+CU,iBAAA,QA5BR,af2gDF,gBADA,gBetgDM,iBAAA,Qf8gDN,yBAFA,gBehhDE,gBfihDF,sBergDQ,aAAA,QZLN,gCYiBM,iBAAA,QALN,mCfwgDF,mCe//CU,iBAAA,QA5BR,YfiiDF,eADA,ee5hDM,iBAAA,QfoiDN,wBAFA,eetiDE,efuiDF,qBe3hDQ,aAAA,QZLN,+BYiBM,iBAAA,QALN,kCf8hDF,kCerhDU,iBAAA,QA5BR,cfujDF,iBADA,iBeljDM,iBAAA,iBZGJ,iCYiBM,iBAAA,iBALN,oCf6iDF,oCepiDU,iBAAA,iBD8EV,sBAGM,MAAA,KACA,iBAAA,QACA,aAAA,QALN,uBAWM,MAAA,QACA,iBAAA,QACA,aAAA,QAKN,YACE,MAAA,KACA,iBAAA,Qdw9CF,ec19CA,ed29CA,qBcp9CI,aAAA,QAPJ,2BAWI,OAAA,EAXJ,oDAgBM,iBAAA,sBXrIJ,uCW4IM,MAAA,KACA,iBAAA,uBFhFJ,4BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GF1GN,4BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GF1GN,4BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GF1GN,6BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GAdV,kBAOQ,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MAVR,kCAcU,OAAA,EE7KV,cACE,QAAA,MACA,MAAA,KACA,OAAA,2BACA,QAAA,QAAA,OfqHI,UAAA,KelHJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,QRbE,cAAA,OSCE,WAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCDLJ,cCMM,WAAA,MDNN,0BAsBI,iBAAA,YACA,OAAA,EEhBF,oBACE,MAAA,QACA,iBAAA,KACA,aAAA,QACA,QAAA,EAKE,WAAA,EAAA,EAAA,EAAA,MAAA,oBFhBN,yCA+BI,MAAA,QAEA,QAAA,EAjCJ,gCA+BI,MAAA,QAEA,QAAA,EAjCJ,oCA+BI,MAAA,QAEA,QAAA,EAjCJ,qCA+BI,MAAA,QAEA,QAAA,EAjCJ,2BA+BI,MAAA,QAEA,QAAA,EAjCJ,uBAAA,wBA2CI,iBAAA,QAEA,QAAA,EAIJ,qCAOI,MAAA,QACA,iBAAA,KAKJ,mBhB2qDA,oBgBzqDE,QAAA,MACA,MAAA,KAUF,gBACE,YAAA,oBACA,eAAA,oBACA,cAAA,EfZE,UAAA,QecF,YAAA,IAGF,mBACE,YAAA,kBACA,eAAA,kBfoCI,UAAA,QelCJ,YAAA,IAGF,mBACE,YAAA,mBACA,eAAA,mBf6BI,UAAA,Qe3BJ,YAAA,IASF,wBACE,QAAA,MACA,MAAA,KACA,YAAA,QACA,eAAA,QACA,cAAA,EACA,YAAA,IACA,MAAA,QACA,iBAAA,YACA,OAAA,MAAA,YACA,aAAA,IAAA,EAVF,wCAAA,wCAcI,cAAA,EACA,aAAA,EAYJ,iBACE,OAAA,0BACA,QAAA,OAAA,MfXI,UAAA,QeaJ,YAAA,IRvIE,cAAA,MQ2IJ,iBACE,OAAA,yBACA,QAAA,MAAA,KfnBI,UAAA,QeqBJ,YAAA,IR/IE,cAAA,MQoJJ,8BAAA,0BAGI,OAAA,KAIJ,sBACE,OAAA,KAQF,YACE,cAAA,KAGF,WACE,QAAA,MACA,WAAA,OAQF,UACE,QAAA,KACA,UAAA,KACA,aAAA,KACA,YAAA,KAJF,ehB8oDA,wBgBtoDI,cAAA,IACA,aAAA,IASJ,YACE,SAAA,SACA,QAAA,MACA,aAAA,QAGF,kBACE,SAAA,SACA,WAAA,MACA,YAAA,SAHF,6CAMI,MAAA,QAIJ,kBACE,cAAA,EAGF,mBACE,QAAA,YACA,YAAA,OACA,aAAA,EACA,aAAA,OAJF,qCAQI,SAAA,OACA,WAAA,EACA,aAAA,SACA,YAAA,EE1MF,gBACE,QAAA,KACA,MAAA,KACA,WAAA,OjBuCA,UAAA,IiBrCA,MAAA,QAGF,eACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MjBkFE,UAAA,QiBhFF,YAAA,IACA,MAAA,KACA,iBAAA,mBV5CA,cAAA,OUiDA,uBAAA,mCAEE,aAAA,QAGE,cAAA,qBACA,iBAAA,2OACA,kBAAA,UACA,oBAAA,OAAA,MAAA,wBACA,gBAAA,sBAAA,sBATJ,6BAAA,yCAaI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBlB80D6C,uCACrD,sCkB71DI,mDlB41DJ,kDkBz0DQ,QAAA,MAOJ,2CAAA,+BAGI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBAMJ,wBAAA,oCAEE,aAAA,QAGE,cAAA,uCACA,WAAA,0JAAA,UAAA,MAAA,OAAA,MAAA,CAAA,IAAA,IAAA,CAAA,2OAAA,KAAA,UAAA,OAAA,MAAA,OAAA,CAAA,sBAAA,sBANJ,8BAAA,0CAUI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBlBm0D8C,wCACtD,uCkB/0DI,oDlB80DJ,mDkB9zDQ,QAAA,MlBo0DkD,4CAC1D,2CkB9zDI,wDlB6zDJ,uDkBzzDQ,QAAA,MAMJ,6CAAA,yDAGI,MAAA,QlB0zDiD,2CACzD,0CkB9zDI,uDlB6zDJ,sDkBrzDQ,QAAA,MAMJ,qDAAA,iEAGI,MAAA,QAHJ,6DAAA,yEAMM,aAAA,QlBuzDmD,+CAC7D,8CkB9zDI,2DlB6zDJ,0DkBjzDQ,QAAA,MAZJ,qEAAA,iFAiBM,aAAA,QCpJN,iBAAA,QDmIA,mEAAA,+EAwBM,WAAA,EAAA,EAAA,EAAA,MAAA,oBAxBN,iFAAA,6FA4BM,aAAA,QAQN,+CAAA,2DAGI,aAAA,QlB6yDkD,4CAC1D,2CkBjzDI,wDlBgzDJ,uDkBxyDQ,QAAA,MARJ,qDAAA,iEAaM,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBA7JR,kBACE,QAAA,KACA,MAAA,KACA,WAAA,OjBuCA,UAAA,IiBrCA,MAAA,QAGF,iBACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MjBkFE,UAAA,QiBhFF,YAAA,IACA,MAAA,KACA,iBAAA,mBV5CA,cAAA,OUiDA,yBAAA,qCAEE,aAAA,QAGE,cAAA,qBACA,iBAAA,qRACA,kBAAA,UACA,oBAAA,OAAA,MAAA,wBACA,gBAAA,sBAAA,sBATJ,+BAAA,2CAaI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBlBy8DiD,2CACzD,0CkBx9DI,uDlBu9DJ,sDkBp8DQ,QAAA,MAOJ,6CAAA,iCAGI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBAMJ,0BAAA,sCAEE,aAAA,QAGE,cAAA,uCACA,WAAA,0JAAA,UAAA,MAAA,OAAA,MAAA,CAAA,IAAA,IAAA,CAAA,qRAAA,KAAA,UAAA,OAAA,MAAA,OAAA,CAAA,sBAAA,sBANJ,gCAAA,4CAUI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBlB87DkD,4CAC1D,2CkB18DI,wDlBy8DJ,uDkBz7DQ,QAAA,MlB+7DsD,gDAC9D,+CkBz7DI,4DlBw7DJ,2DkBp7DQ,QAAA,MAMJ,+CAAA,2DAGI,MAAA,QlBq7DqD,+CAC7D,8CkBz7DI,2DlBw7DJ,0DkBh7DQ,QAAA,MAMJ,uDAAA,mEAGI,MAAA,QAHJ,+DAAA,2EAMM,aAAA,QlBk7DuD,mDACjE,kDkBz7DI,+DlBw7DJ,8DkB56DQ,QAAA,MAZJ,uEAAA,mFAiBM,aAAA,QCpJN,iBAAA,QDmIA,qEAAA,iFAwBM,WAAA,EAAA,EAAA,EAAA,MAAA,oBAxBN,mFAAA,+FA4BM,aAAA,QAQN,iDAAA,6DAGI,aAAA,QlBw6DsD,gDAC9D,+CkB56DI,4DlB26DJ,2DkBn6DQ,QAAA,MARJ,uDAAA,mEAaM,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBFsEV,aACE,QAAA,KACA,UAAA,IAAA,KACA,YAAA,OAHF,yBASI,MAAA,KJ9MA,yBIqMJ,mBAeM,QAAA,KACA,YAAA,OACA,gBAAA,OACA,cAAA,EAlBN,yBAuBM,QAAA,KACA,KAAA,EAAA,EAAA,KACA,UAAA,IAAA,KACA,YAAA,OACA,cAAA,EA3BN,2BAgCM,QAAA,aACA,MAAA,KACA,eAAA,OAlCN,qCAuCM,QAAA,ahB21DJ,4BgBl4DF,0BA4CM,MAAA,KA5CN,yBAkDM,QAAA,KACA,YAAA,OACA,gBAAA,OACA,MAAA,KACA,aAAA,EAtDN,+BAyDM,SAAA,SACA,YAAA,EACA,WAAA,EACA,aAAA,OACA,YAAA,EA7DN,6BAiEM,YAAA,OACA,gBAAA,OAlEN,mCAqEM,cAAA,GIhUN,KACE,QAAA,aAEA,YAAA,IACA,MAAA,QACA,WAAA,OACA,eAAA,OACA,oBAAA,KAAA,iBAAA,KAAA,gBAAA,KAAA,YAAA,KACA,iBAAA,YACA,OAAA,IAAA,MAAA,YCsFA,QAAA,QAAA,OpB0BI,UAAA,KoBxBJ,YAAA,IblGE,cAAA,OSCE,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCGLJ,KHMM,WAAA,MdAJ,WiBQE,MAAA,QACA,gBAAA,KAfJ,WAAA,WAoBI,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBArBJ,cAAA,cA2BI,QAAA,IAeJ,epBqpEA,wBoBnpEE,eAAA,KASA,aCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,mBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,mBAAA,mBAMI,WAAA,EAAA,EAAA,EAAA,MAAA,oBAKJ,sBAAA,sBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,kDAAA,kDrByrEF,mCqBtrEI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,wDAAA,wDrBsrEJ,yCqBjrEQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBDKN,eCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,qBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,qBAAA,qBAMI,WAAA,EAAA,EAAA,EAAA,MAAA,qBAKJ,wBAAA,wBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,oDAAA,oDrB2tEF,qCqBxtEI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,0DAAA,0DrBwtEJ,2CqBntEQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBDKN,aCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,mBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,mBAAA,mBAMI,WAAA,EAAA,EAAA,EAAA,MAAA,mBAKJ,sBAAA,sBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,kDAAA,kDrB6vEF,mCqB1vEI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,wDAAA,wDrB0vEJ,yCqBrvEQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBDKN,UCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,gBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,gBAAA,gBAMI,WAAA,EAAA,EAAA,EAAA,MAAA,oBAKJ,mBAAA,mBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,+CAAA,+CrB+xEF,gCqB5xEI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,qDAAA,qDrB4xEJ,sCqBvxEQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBDKN,aCrDA,MAAA,QFAE,iBAAA,QEEF,aAAA,QlBIA,mBkBAE,MAAA,QFNA,iBAAA,QEQA,aAAA,QAGF,mBAAA,mBAMI,WAAA,EAAA,EAAA,EAAA,MAAA,oBAKJ,sBAAA,sBAEE,MAAA,QACA,iBAAA,QACA,aAAA,QAOF,kDAAA,kDrBi0EF,mCqB9zEI,MAAA,QACA,iBAAA,QAIA,aAAA,QAEA,wDAAA,wDrB8zEJ,yCqBzzEQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBDKN,YCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,kBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,kBAAA,kBAMI,WAAA,EAAA,EAAA,EAAA,MAAA,mBAKJ,qBAAA,qBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,iDAAA,iDrBm2EF,kCqBh2EI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,uDAAA,uDrBg2EJ,wCqB31EQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBDKN,WCrDA,MAAA,QFAE,iBAAA,QEEF,aAAA,QlBIA,iBkBAE,MAAA,QFNA,iBAAA,QEQA,aAAA,QAGF,iBAAA,iBAMI,WAAA,EAAA,EAAA,EAAA,MAAA,qBAKJ,oBAAA,oBAEE,MAAA,QACA,iBAAA,QACA,aAAA,QAOF,gDAAA,gDrBq4EF,iCqBl4EI,MAAA,QACA,iBAAA,QAIA,aAAA,QAEA,sDAAA,sDrBk4EJ,uCqB73EQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBDKN,UCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,gBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,gBAAA,gBAMI,WAAA,EAAA,EAAA,EAAA,MAAA,kBAKJ,mBAAA,mBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,+CAAA,+CrBu6EF,gCqBp6EI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,qDAAA,qDrBo6EJ,sCqB/5EQ,WAAA,EAAA,EAAA,EAAA,MAAA,kBDWN,qBCJA,MAAA,QACA,aAAA,QlBlDA,2BkBqDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,2BAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,8BAAA,8BAEE,MAAA,QACA,iBAAA,YAGF,0DAAA,0DrB65EF,2CqB15EI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,gEAAA,gErB65EJ,iDqBx5EQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD5BN,uBCJA,MAAA,QACA,aAAA,QlBlDA,6BkBqDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,6BAAA,6BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,qBAGF,gCAAA,gCAEE,MAAA,QACA,iBAAA,YAGF,4DAAA,4DrB67EF,6CqB17EI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,kEAAA,kErB67EJ,mDqBx7EQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBD5BN,qBCJA,MAAA,QACA,aAAA,QlBlDA,2BkBqDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,2BAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,8BAAA,8BAEE,MAAA,QACA,iBAAA,YAGF,0DAAA,0DrB69EF,2CqB19EI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,gEAAA,gErB69EJ,iDqBx9EQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD5BN,kBCJA,MAAA,QACA,aAAA,QlBlDA,wBkBqDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,wBAAA,wBAEE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAGF,2BAAA,2BAEE,MAAA,QACA,iBAAA,YAGF,uDAAA,uDrB6/EF,wCqB1/EI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6DAAA,6DrB6/EJ,8CqBx/EQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBD5BN,qBCJA,MAAA,QACA,aAAA,QlBlDA,2BkBqDE,MAAA,QACA,iBAAA,QACA,aAAA,QAGF,2BAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,8BAAA,8BAEE,MAAA,QACA,iBAAA,YAGF,0DAAA,0DrB6hFF,2CqB1hFI,MAAA,QACA,iBAAA,QACA,aAAA,QAEA,gEAAA,gErB6hFJ,iDqBxhFQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD5BN,oBCJA,MAAA,QACA,aAAA,QlBlDA,0BkBqDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,0BAAA,0BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,6BAAA,6BAEE,MAAA,QACA,iBAAA,YAGF,yDAAA,yDrB6jFF,0CqB1jFI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,+DAAA,+DrB6jFJ,gDqBxjFQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD5BN,mBCJA,MAAA,QACA,aAAA,QlBlDA,yBkBqDE,MAAA,QACA,iBAAA,QACA,aAAA,QAGF,yBAAA,yBAEE,WAAA,EAAA,EAAA,EAAA,MAAA,qBAGF,4BAAA,4BAEE,MAAA,QACA,iBAAA,YAGF,wDAAA,wDrB6lFF,yCqB1lFI,MAAA,QACA,iBAAA,QACA,aAAA,QAEA,8DAAA,8DrB6lFJ,+CqBxlFQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBD5BN,kBCJA,MAAA,QACA,aAAA,QlBlDA,wBkBqDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,wBAAA,wBAEE,WAAA,EAAA,EAAA,EAAA,MAAA,kBAGF,2BAAA,2BAEE,MAAA,QACA,iBAAA,YAGF,uDAAA,uDrB6nFF,wCqB1nFI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6DAAA,6DrB6nFJ,8CqBxnFQ,WAAA,EAAA,EAAA,EAAA,MAAA,kBDjBR,UACE,YAAA,IACA,MAAA,QACA,gBAAA,KjBnEA,gBiBsEE,MAAA,QACA,gBAAA,UAPJ,gBAAA,gBAYI,gBAAA,UACA,WAAA,KAbJ,mBAAA,mBAkBI,MAAA,QACA,eAAA,KAWJ,mBAAA,QCLE,QAAA,MAAA,KpB0BI,UAAA,QoBxBJ,YAAA,IblGE,cAAA,MYyGJ,mBAAA,QCTE,QAAA,OAAA,MpB0BI,UAAA,QoBxBJ,YAAA,IblGE,cAAA,MYkHJ,WACE,QAAA,MACA,MAAA,KAFF,sBAMI,WAAA,MpB0oFJ,6BADA,4BoBpoFA,6BAII,MAAA,KEtIJ,MLMM,WAAA,QAAA,KAAA,OAKF,uCKXJ,MLYM,WAAA,MKZN,iBAII,QAAA,EAIJ,qBAEI,QAAA,KAIJ,YACE,SAAA,SACA,OAAA,EACA,SAAA,OLXI,WAAA,OAAA,KAAA,KAKF,uCKGJ,YLFM,WAAA,MjBgyFN,UACA,UAFA,WuB1yFA,QAIE,SAAA,SAGF,iBACE,YAAA,OCoBE,wBACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAhCJ,WAAA,KAAA,MACA,aAAA,KAAA,MAAA,YACA,cAAA,EACA,YAAA,KAAA,MAAA,YAqDE,8BACE,YAAA,ED1CN,eACE,SAAA,SACA,IAAA,KACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,UAAA,MACA,QAAA,MAAA,EACA,OAAA,QAAA,EAAA,EtBsGI,UAAA,KsBpGJ,MAAA,QACA,WAAA,KACA,WAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,gBf3BE,cAAA,OeoCA,oBACE,MAAA,KACA,KAAA,EAGF,qBACE,MAAA,EACA,KAAA,KXYF,yBWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MXYF,yBWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MXYF,yBWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MXYF,0BWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MAON,uBAEI,IAAA,KACA,OAAA,KACA,WAAA,EACA,cAAA,QC/BA,gCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAzBJ,WAAA,EACA,aAAA,KAAA,MAAA,YACA,cAAA,KAAA,MACA,YAAA,KAAA,MAAA,YA8CE,sCACE,YAAA,EDUN,0BAEI,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,YAAA,QC7CA,mCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAlBJ,WAAA,KAAA,MAAA,YACA,aAAA,EACA,cAAA,KAAA,MAAA,YACA,YAAA,KAAA,MAuCE,yCACE,YAAA,EA7BF,mCDmDE,eAAA,EAKN,yBAEI,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,aAAA,QC9DA,kCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAJF,kCAgBI,QAAA,KAGF,mCACE,QAAA,aACA,aAAA,OACA,eAAA,OACA,QAAA,GA9BN,WAAA,KAAA,MAAA,YACA,aAAA,KAAA,MACA,cAAA,KAAA,MAAA,YAiCE,wCACE,YAAA,EAVA,mCDiDA,eAAA,EAON,oCAAA,kCAAA,mCAAA,iCAKI,MAAA,KACA,OAAA,KAKJ,kBE9GE,OAAA,EACA,OAAA,MAAA,EACA,SAAA,OACA,WAAA,IAAA,MAAA,QFkHF,eACE,QAAA,MACA,MAAA,KACA,QAAA,OAAA,OACA,MAAA,KACA,YAAA,IACA,MAAA,QACA,WAAA,QACA,YAAA,OACA,iBAAA,YACA,OAAA,EpBpHA,qBAAA,qBoBmIE,MAAA,QACA,gBAAA,KJ9IA,iBAAA,QIoHJ,sBAAA,sBAgCI,MAAA,KACA,gBAAA,KJrJA,iBAAA,QIoHJ,wBAAA,wBAuCI,MAAA,QACA,eAAA,KACA,iBAAA,YAQJ,oBACE,QAAA,MAIF,iBACE,QAAA,MACA,QAAA,MAAA,OACA,cAAA,EtBpDI,UAAA,QsBsDJ,MAAA,QACA,YAAA,OAIF,oBACE,QAAA,MACA,QAAA,OAAA,OACA,MAAA,QG1LF,W1BgiGA,oB0B9hGE,SAAA,SACA,QAAA,YACA,eAAA,O1BmiGF,yB0BviGA,gBAOI,SAAA,SACA,KAAA,EAAA,EAAA,K1BqiGJ,+BGpiGE,sBuBII,QAAA,E1BuiGN,gCADA,gCADA,+B0BljGA,uBAAA,uBAAA,sBAkBM,QAAA,EAMN,aACE,QAAA,KACA,UAAA,KACA,gBAAA,WAHF,0BAMI,MAAA,K1BqiGJ,wC0BjiGA,kCAII,YAAA,K1BkiGJ,4C0BtiGA,uDlBhBI,wBAAA,EACA,2BAAA,ER2jGJ,6C0B5iGA,kClBFI,uBAAA,EACA,0BAAA,EkBgCJ,uBACE,cAAA,SACA,aAAA,SAFF,8B1ByhGA,yCADA,sC0BjhGI,YAAA,EAGF,yCACE,aAAA,EAIJ,0CAAA,+BACE,cAAA,QACA,aAAA,QAGF,0CAAA,+BACE,cAAA,OACA,aAAA,OAoBF,oBACE,eAAA,OACA,YAAA,WACA,gBAAA,OAHF,yB1BwgGA,+B0BjgGI,MAAA,K1BsgGJ,iD0B7gGA,2CAYI,WAAA,K1BsgGJ,qD0BlhGA,gElBlFI,2BAAA,EACA,0BAAA,ERymGJ,sD0BxhGA,2ClBhGI,uBAAA,EACA,wBAAA,EkBuIJ,uB1Bs/FA,kC0Bn/FI,cAAA,E1Bw/FJ,4C0B3/FA,yC1B6/FA,uDADA,oD0Br/FM,SAAA,SACA,KAAA,cACA,eAAA,KCzJN,aACE,SAAA,SACA,QAAA,KACA,UAAA,KACA,YAAA,QACA,MAAA,K3BypGF,0BADA,4B2B7pGA,2B3B4pGA,qC2BjpGI,SAAA,SACA,KAAA,EAAA,EAAA,KAGA,MAAA,GACA,cAAA,E3BgqGJ,uCADA,yCADA,wCADA,yCADA,2CADA,0CAJA,wCADA,0C2BtqGA,yC3B0qGA,kDADA,oDADA,mD2BnpGM,YAAA,K3BiqGN,sEADA,kC2BrrGA,iCA6BI,QAAA,EA7BJ,mDAkCI,QAAA,E3B6pGJ,6C2B/rGA,4CnBeI,wBAAA,EACA,2BAAA,ERqrGJ,8C2BrsGA,6CnB6BI,uBAAA,EACA,0BAAA,EmB9BJ,0BA8CI,QAAA,KACA,YAAA,OA/CJ,8D3BgtGA,qEQjsGI,wBAAA,EACA,2BAAA,EmBhBJ,+DnB6BI,uBAAA,EACA,0BAAA,ER6rGJ,oB2B7pGA,qBAEE,QAAA,K3BgqGF,yB2BlqGA,0BAQI,SAAA,SACA,QAAA,E3B+pGJ,+B2BxqGA,gCAYM,QAAA,E3BoqGN,8BACA,2CAEA,2CADA,wD2BlrGA,+B3B6qGA,4CAEA,4CADA,yD2B1pGI,YAAA,KAIJ,qBAAuB,aAAA,KACvB,oBAAsB,YAAA,KAQtB,kBACE,QAAA,KACA,YAAA,OACA,QAAA,QAAA,OACA,cAAA,E1BsBI,UAAA,K0BpBJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,OACA,YAAA,OACA,iBAAA,QACA,OAAA,IAAA,MAAA,QnB5GE,cAAA,OR+wGJ,uC2B/qGA,oCAkBI,WAAA,E3BkqGJ,+B2BxpGA,4CAEE,OAAA,yB3B2pGF,+B2BxpGA,8B3B4pGA,yCAFA,sDACA,0CAFA,uD2BnpGE,QAAA,MAAA,K1BbI,UAAA,Q0BeJ,YAAA,InBzIE,cAAA,MRqyGJ,+B2BxpGA,4CAEE,OAAA,0B3B2pGF,+B2BxpGA,8B3B4pGA,yCAFA,sDACA,0CAFA,uD2BnpGE,QAAA,OAAA,M1B9BI,UAAA,Q0BgCJ,YAAA,InB1JE,cAAA,MmB8JJ,+B3BwpGA,+B2BtpGE,cAAA,Q3B8pGF,wFACA,+EAHA,uDACA,oE2BlpGA,uC3BgpGA,oDQ3yGI,wBAAA,EACA,2BAAA,EmBmKJ,sC3BipGA,mDAGA,qEACA,kFAHA,yDACA,sEQzyGI,uBAAA,EACA,0BAAA,EoB3BJ,gBACE,SAAA,SACA,QAAA,MACA,WAAA,OACA,aAAA,OAGF,uBACE,QAAA,YACA,aAAA,KAGF,sBACE,SAAA,SACA,QAAA,GACA,QAAA,EAHF,4DAMI,MAAA,KACA,aAAA,QTtBA,iBAAA,QSeJ,0DAiBM,WAAA,EAAA,EAAA,EAAA,MAAA,oBAjBN,wEAsBI,aAAA,QAtBJ,0EA0BI,MAAA,KACA,iBAAA,QACA,aAAA,QA5BJ,qDAkCM,MAAA,QAlCN,6DAqCQ,iBAAA,QAUR,sBACE,SAAA,SACA,cAAA,EACA,eAAA,IAHF,8BAOI,SAAA,SACA,IAAA,OACA,KAAA,QACA,QAAA,MACA,MAAA,KACA,OAAA,KACA,eAAA,KACA,QAAA,GACA,iBAAA,KACA,OAAA,QAAA,MAAA,IAhBJ,6BAsBI,SAAA,SACA,IAAA,OACA,KAAA,QACA,QAAA,MACA,MAAA,KACA,OAAA,KACA,QAAA,GACA,WAAA,UAAA,GAAA,CAAA,IAAA,IASJ,+CpBrGI,cAAA,OoBqGJ,4EAOM,iBAAA,4LAPN,mFAaM,aAAA,QTjHF,iBAAA,QSoGJ,kFAkBM,iBAAA,yIAlBN,sFAwBM,iBAAA,mBAxBN,4FA2BM,iBAAA,mBASN,4CAGI,cAAA,IAHJ,yEAQM,iBAAA,sIARN,mFAcM,iBAAA,mBAUN,eACE,aAAA,QADF,6CAKM,KAAA,SACA,MAAA,QACA,eAAA,IAEA,cAAA,MATN,4CAaM,IAAA,mBACA,KAAA,qBACA,MAAA,iBACA,OAAA,iBACA,iBAAA,QAEA,cAAA,MXnLA,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,WAAA,CAAA,kBAAA,KAAA,YAAA,WAAA,UAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,UAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,WAAA,CAAA,kBAAA,KAAA,YAKF,uCW2JJ,4CX1JM,WAAA,MW0JN,0EA0BM,iBAAA,KACA,kBAAA,mBAAA,UAAA,mBA3BN,oFAiCM,iBAAA,mBAYN,eACE,QAAA,aACA,MAAA,KACA,OAAA,2BACA,QAAA,QAAA,QAAA,QAAA,O3BxFI,UAAA,K2B2FJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,eAAA,OACA,WAAA,0JAAA,UAAA,MAAA,OAAA,MAAA,CAAA,IAAA,KACA,iBAAA,KACA,OAAA,IAAA,MAAA,QpB3NE,cAAA,OoB8NF,mBAAA,KAAA,gBAAA,KAAA,WAAA,KAhBF,qBAmBI,aAAA,QACA,QAAA,EAIE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAxBN,gCAiCM,MAAA,QACA,iBAAA,KAlCN,yBAAA,qCAwCI,OAAA,KACA,cAAA,OACA,iBAAA,KA1CJ,wBA8CI,MAAA,QACA,iBAAA,QA/CJ,2BAoDI,QAAA,KAIJ,kBACE,OAAA,0BACA,YAAA,OACA,eAAA,OACA,aAAA,M3BhJI,UAAA,Q2BoJN,kBACE,OAAA,yBACA,YAAA,MACA,eAAA,MACA,aAAA,K3BxJI,UAAA,Q2BiKN,aACE,SAAA,SACA,QAAA,aACA,MAAA,KACA,OAAA,2BACA,cAAA,EAGF,mBACE,SAAA,SACA,QAAA,EACA,MAAA,KACA,OAAA,2BACA,OAAA,EACA,QAAA,EANF,4CASI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAVJ,+CAcI,iBAAA,QAdJ,sDAmBM,QAAA,SAnBN,0DAwBI,QAAA,kBAIJ,mBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,EACA,OAAA,2BACA,QAAA,QAAA,OAEA,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,OAAA,IAAA,MAAA,QpB5UE,cAAA,OoB+TJ,0BAkBI,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,QAAA,EACA,QAAA,MACA,OAAA,qBACA,QAAA,QAAA,OACA,YAAA,IACA,MAAA,QACA,QAAA,ST1VA,iBAAA,QS4VA,YAAA,QpB7VA,cAAA,EAAA,OAAA,OAAA,EoBwWJ,cACE,MAAA,KACA,OAAA,mBACA,QAAA,EACA,iBAAA,YACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KALF,oBAQI,QAAA,EARJ,0CAY8B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,oBAZ9B,sCAa8B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,oBAb9B,+BAc8B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,oBAd9B,gCAkBI,OAAA,EAlBJ,oCAsBI,MAAA,KACA,OAAA,KACA,WAAA,QT/XA,iBAAA,QSiYA,OAAA,EpBlYA,cAAA,KSCE,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YWqYF,mBAAA,KAAA,WAAA,KXhYA,uCWkWJ,oCXjWM,WAAA,MWiWN,2CTvWI,iBAAA,QSuWJ,6CAsCI,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YpBnZA,cAAA,KoBwWJ,gCAiDI,MAAA,KACA,OAAA,KTzZA,iBAAA,QS2ZA,OAAA,EpB5ZA,cAAA,KSCE,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YW+ZF,gBAAA,KAAA,WAAA,KX1ZA,uCWkWJ,gCXjWM,WAAA,MWiWN,uCTvWI,iBAAA,QSuWJ,gCAgEI,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YpB7aA,cAAA,KoBwWJ,yBA2EI,MAAA,KACA,OAAA,KACA,WAAA,EACA,aAAA,MACA,YAAA,MTtbA,iBAAA,QSwbA,OAAA,EpBzbA,cAAA,KSCE,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YW4bF,WAAA,KXvbA,uCWkWJ,yBXjWM,WAAA,MWiWN,gCTvWI,iBAAA,QSuWJ,yBA6FI,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,YACA,aAAA,YACA,aAAA,MAnGJ,8BAwGI,iBAAA,QpBhdA,cAAA,KoBwWJ,8BA6GI,aAAA,KACA,iBAAA,QpBtdA,cAAA,KoBwWJ,6CAoHM,iBAAA,QApHN,sDAwHM,OAAA,QAxHN,yCA4HM,iBAAA,QA5HN,yCAgIM,OAAA,QAhIN,kCAoIM,iBAAA,QAKN,8B5BmxGA,mBACA,eiBpwHM,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCW2eJ,8B5B0xGE,mBACA,eiBrwHI,WAAA,MYPN,KACE,QAAA,KACA,UAAA,KACA,aAAA,EACA,cAAA,EACA,WAAA,KAGF,UACE,QAAA,MACA,QAAA,MAAA,K1BCA,gBAAA,gB0BEE,gBAAA,KALJ,mBAUI,MAAA,QACA,eAAA,KACA,OAAA,QAQJ,UACE,cAAA,IAAA,MAAA,QADF,oBAII,cAAA,KAJJ,oBAQI,OAAA,IAAA,MAAA,YrB3BA,uBAAA,OACA,wBAAA,OLCF,0BAAA,0B0B6BI,aAAA,QAAA,QAAA,QAZN,6BAgBM,MAAA,QACA,iBAAA,YACA,aAAA,Y7BmxHN,mC6BryHA,2BAwBI,MAAA,QACA,iBAAA,KACA,aAAA,QAAA,QAAA,KA1BJ,yBA+BI,WAAA,KrBlDA,uBAAA,EACA,wBAAA,EqB4DJ,qBrBtEI,cAAA,OqBsEJ,4B7B4wHA,2B6BrwHI,MAAA,KACA,iBAAA,QASJ,oBAEI,KAAA,EAAA,EAAA,KACA,WAAA,OAIJ,yBAEI,WAAA,EACA,UAAA,EACA,WAAA,OASJ,uBAEI,QAAA,KAFJ,qBAKI,QAAA,MCpGJ,QACE,SAAA,SACA,QAAA,KACA,UAAA,KACA,YAAA,OACA,gBAAA,cACA,QAAA,MAAA,KANF,mB9Bw2HA,yB8B51HI,QAAA,KACA,UAAA,KACA,YAAA,OACA,gBAAA,cASJ,cACE,QAAA,aACA,YAAA,SACA,eAAA,SACA,aAAA,K7BkFI,UAAA,Q6BhFJ,YAAA,QACA,YAAA,O3BhCA,oBAAA,oB2BmCE,gBAAA,KASJ,YACE,QAAA,KACA,eAAA,OACA,aAAA,EACA,cAAA,EACA,WAAA,KALF,sBAQI,cAAA,EACA,aAAA,EATJ,2BAaI,SAAA,OACA,MAAA,KASJ,aACE,QAAA,aACA,YAAA,MACA,eAAA,MAYF,iBACE,WAAA,KACA,UAAA,EAGA,YAAA,OAIF,gBACE,QAAA,OAAA,O7BmBI,UAAA,Q6BjBJ,YAAA,EACA,iBAAA,YACA,OAAA,IAAA,MAAA,YtB3GE,cAAA,OLWF,sBAAA,sB2BoGE,gBAAA,KAMJ,qBACE,QAAA,aACA,MAAA,MACA,OAAA,MACA,eAAA,OACA,QAAA,GACA,WAAA,UAAA,OAAA,OACA,gBAAA,KAAA,KlBxDE,4BkBkEC,6B9B0zHH,mC8BtzHQ,cAAA,EACA,aAAA,GlBpFN,yBkB+EA,kBAUI,UAAA,IAAA,OACA,gBAAA,WAXH,8BAcK,eAAA,IAdL,6CAiBO,SAAA,SAjBP,wCAqBO,cAAA,MACA,aAAA,MAtBP,6B9Bg1HH,mC8BnzHQ,UAAA,OA7BL,mCAiCK,QAAA,eAGA,WAAA,KApCL,kCAwCK,QAAA,MlB1GN,4BkBkEC,6B9B81HH,mC8B11HQ,cAAA,EACA,aAAA,GlBpFN,yBkB+EA,kBAUI,UAAA,IAAA,OACA,gBAAA,WAXH,8BAcK,eAAA,IAdL,6CAiBO,SAAA,SAjBP,wCAqBO,cAAA,MACA,aAAA,MAtBP,6B9Bo3HH,mC8Bv1HQ,UAAA,OA7BL,mCAiCK,QAAA,eAGA,WAAA,KApCL,kCAwCK,QAAA,MlB1GN,4BkBkEC,6B9Bk4HH,mC8B93HQ,cAAA,EACA,aAAA,GlBpFN,yBkB+EA,kBAUI,UAAA,IAAA,OACA,gBAAA,WAXH,8BAcK,eAAA,IAdL,6CAiBO,SAAA,SAjBP,wCAqBO,cAAA,MACA,aAAA,MAtBP,6B9Bw5HH,mC8B33HQ,UAAA,OA7BL,mCAiCK,QAAA,eAGA,WAAA,KApCL,kCAwCK,QAAA,MlB1GN,6BkBkEC,6B9Bs6HH,mC8Bl6HQ,cAAA,EACA,aAAA,GlBpFN,0BkB+EA,kBAUI,UAAA,IAAA,OACA,gBAAA,WAXH,8BAcK,eAAA,IAdL,6CAiBO,SAAA,SAjBP,wCAqBO,cAAA,MACA,aAAA,MAtBP,6B9B47HH,mC8B/5HQ,UAAA,OA7BL,mCAiCK,QAAA,eAGA,WAAA,KApCL,kCAwCK,QAAA,MA7CV,eAeQ,UAAA,IAAA,OACA,gBAAA,WAhBR,0B9Bm9HA,gC8B18HU,cAAA,EACA,aAAA,EAVV,2BAmBU,eAAA,IAnBV,0CAsBY,SAAA,SAtBZ,qCA0BY,cAAA,MACA,aAAA,MA3BZ,0B9Bs+HA,gC8Bp8HU,UAAA,OAlCV,gCAsCU,QAAA,eAGA,WAAA,KAzCV,+BA6CU,QAAA,KAaV,4BAEI,MAAA,e3BlLF,kCAAA,kC2BqLI,MAAA,eALN,oCAWM,MAAA,e3B3LJ,0CAAA,0C2B8LM,MAAA,eAdR,6CAkBQ,MAAA,e9B47HR,4CAEA,2CADA,yC8B/8HA,0CA0BM,MAAA,eA1BN,8BA+BI,MAAA,eACA,aAAA,eAhCJ,mCAoCI,iBAAA,uOApCJ,2BAwCI,MAAA,eAxCJ,6BA0CM,MAAA,e3B1NJ,mCAAA,mC2B6NM,MAAA,eAOR,2BAEI,MAAA,K3BtOF,iCAAA,iC2ByOI,MAAA,KALN,mCAWM,MAAA,qB3B/OJ,yCAAA,yC2BkPM,MAAA,sBAdR,4CAkBQ,MAAA,sB9Bw7HR,2CAEA,0CADA,wC8B38HA,yCA0BM,MAAA,KA1BN,6BA+BI,MAAA,qBACA,aAAA,qBAhCJ,kCAoCI,iBAAA,6OApCJ,0BAwCI,MAAA,qBAxCJ,4BA0CM,MAAA,K3B9QJ,kCAAA,kC2BiRM,MAAA,KC7RR,MACE,SAAA,SACA,QAAA,KACA,eAAA,OACA,UAAA,EACA,UAAA,WACA,iBAAA,KACA,gBAAA,WACA,OAAA,IAAA,MAAA,iBvBPE,cAAA,OuBDJ,SAYI,aAAA,EACA,YAAA,EAbJ,2DvBUI,uBAAA,OACA,wBAAA,OuBXJ,yDvBwBI,2BAAA,OACA,0BAAA,OuBIJ,WAGE,KAAA,EAAA,EAAA,KACA,QAAA,QAIF,YACE,cAAA,OAGF,eACE,WAAA,SACA,cAAA,EAGF,sBACE,cAAA,E5BvCA,iB4B4CE,gBAAA,KAFJ,sBAMI,YAAA,QAQJ,aACE,QAAA,OAAA,QACA,cAAA,EAEA,iBAAA,gBACA,cAAA,IAAA,MAAA,iBALF,yBvB/DI,cAAA,mBAAA,mBAAA,EAAA,EuB+DJ,sDAaM,WAAA,EAKN,aACE,QAAA,OAAA,QACA,iBAAA,gBACA,WAAA,IAAA,MAAA,iBAHF,wBvBjFI,cAAA,EAAA,EAAA,mBAAA,mBuBgGJ,kBACE,aAAA,SACA,cAAA,QACA,YAAA,SACA,cAAA,EAGF,mBACE,aAAA,SACA,YAAA,SAIF,kBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,QAGF,UACE,MAAA,KvBvHE,cAAA,mBuB4HJ,cACE,MAAA,KvBpHE,uBAAA,mBACA,wBAAA,mBuBuHJ,iBACE,MAAA,KvB3GE,2BAAA,mBACA,0BAAA,mBuBiHJ,WACE,QAAA,KACA,eAAA,OAFF,iBAKI,cAAA,KnBvFA,yBmBkFJ,WASI,UAAA,IAAA,KACA,aAAA,MACA,YAAA,MAXJ,iBAcM,QAAA,KAEA,KAAA,EAAA,EAAA,GACA,eAAA,OACA,aAAA,KACA,cAAA,EACA,YAAA,MAUN,YACE,QAAA,KACA,eAAA,OAFF,kBAOI,cAAA,KnBvHA,yBmBgHJ,YAWI,UAAA,IAAA,KAXJ,kBAgBM,KAAA,EAAA,EAAA,GACA,cAAA,EAjBN,wBAoBQ,YAAA,EACA,YAAA,EArBR,mCvBvJI,wBAAA,EACA,2BAAA,ER02IF,gD+BptIF,iDAgCY,wBAAA,E/BwrIV,gD+BxtIF,oDAqCY,2BAAA,EArCZ,oCvBzII,uBAAA,EACA,0BAAA,ERw2IF,iD+BhuIF,kDA+CY,uBAAA,E/BqrIV,iD+BpuIF,qDAoDY,0BAAA,GAaZ,oBAEI,cAAA,OnBnLA,yBmBiLJ,cAMI,qBAAA,EAAA,kBAAA,EAAA,aAAA,EACA,mBAAA,QAAA,gBAAA,QAAA,WAAA,QACA,QAAA,EACA,OAAA,EATJ,oBAYM,QAAA,aACA,MAAA,MAUN,iBAEI,SAAA,OAFJ,8DvB/PI,cAAA,EuB+PJ,wDAUQ,cAAA,EvBzQJ,cAAA,EuB+PJ,kDAgBM,cAAA,EvBxPF,2BAAA,EACA,0BAAA,EuBuOJ,8BvBtPI,uBAAA,EACA,wBAAA,EuBqPJ,8BAyBM,cAAA,KC7RN,YACE,QAAA,KACA,UAAA,KACA,QAAA,OAAA,KACA,cAAA,KACA,WAAA,KACA,iBAAA,QxBDE,cAAA,OwBKJ,kCAGI,aAAA,MAHJ,0CAMM,QAAA,aACA,cAAA,MACA,MAAA,QACA,QAAA,IATN,gDAcI,gBAAA,KAdJ,wBAkBI,MAAA,QC5BJ,YACE,QAAA,K5BGA,aAAA,EACA,WAAA,KGAE,cAAA,OyBCJ,WACE,SAAA,SACA,QAAA,MACA,QAAA,MAAA,OACA,YAAA,KACA,YAAA,KACA,MAAA,QACA,iBAAA,KACA,OAAA,IAAA,MAAA,QARF,iBAWI,QAAA,EACA,MAAA,QACA,gBAAA,KACA,iBAAA,QACA,aAAA,QAfJ,iBAmBI,QAAA,EACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAIJ,kCAGM,YAAA,EzBCF,uBAAA,OACA,0BAAA,OyBLJ,iCzBVI,wBAAA,OACA,2BAAA,OyBSJ,6BAcI,QAAA,EACA,MAAA,KACA,iBAAA,QACA,aAAA,QAjBJ,+BAqBI,MAAA,QACA,eAAA,KAEA,OAAA,KACA,iBAAA,KACA,aAAA,QCtDF,0BACE,QAAA,OAAA,OjC2HE,UAAA,QiCzHF,YAAA,IAKE,iD1BwBF,uBAAA,MACA,0BAAA,M0BpBE,gD1BKF,wBAAA,MACA,2BAAA,M0BnBF,0BACE,QAAA,OAAA,MjC2HE,UAAA,QiCzHF,YAAA,IAKE,iD1BwBF,uBAAA,MACA,0BAAA,M0BpBE,gD1BKF,wBAAA,MACA,2BAAA,M2BjBJ,OACE,QAAA,aACA,QAAA,MAAA,KlCiEE,UAAA,IkC/DF,YAAA,IACA,YAAA,EACA,WAAA,OACA,YAAA,OACA,eAAA,S3BRE,cAAA,OSCE,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCkBNJ,OlBOM,WAAA,MdIJ,cAAA,cgCGI,gBAAA,KAdN,aAoBI,QAAA,KAKJ,YACE,SAAA,SACA,IAAA,KAOF,YACE,cAAA,KACA,aAAA,K3BpCE,cAAA,M2B6CF,eCjDA,MAAA,KACA,iBAAA,QjCcA,sBAAA,sBiCVI,MAAA,KACA,iBAAA,QAHI,sBAAA,sBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,mBDqCJ,iBCjDA,MAAA,KACA,iBAAA,QjCcA,wBAAA,wBiCVI,MAAA,KACA,iBAAA,QAHI,wBAAA,wBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,qBDqCJ,eCjDA,MAAA,KACA,iBAAA,QjCcA,sBAAA,sBiCVI,MAAA,KACA,iBAAA,QAHI,sBAAA,sBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,mBDqCJ,YCjDA,MAAA,KACA,iBAAA,QjCcA,mBAAA,mBiCVI,MAAA,KACA,iBAAA,QAHI,mBAAA,mBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBDqCJ,eCjDA,MAAA,QACA,iBAAA,QjCcA,sBAAA,sBiCVI,MAAA,QACA,iBAAA,QAHI,sBAAA,sBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,mBDqCJ,cCjDA,MAAA,KACA,iBAAA,QjCcA,qBAAA,qBiCVI,MAAA,KACA,iBAAA,QAHI,qBAAA,qBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,mBDqCJ,aCjDA,MAAA,QACA,iBAAA,QjCcA,oBAAA,oBiCVI,MAAA,QACA,iBAAA,QAHI,oBAAA,oBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,qBDqCJ,YCjDA,MAAA,KACA,iBAAA,QjCcA,mBAAA,mBiCVI,MAAA,KACA,iBAAA,QAHI,mBAAA,mBAQJ,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,kBCbN,WACE,QAAA,KAAA,KACA,cAAA,KAEA,iBAAA,Q7BCE,cAAA,MIuDA,yByB5DJ,WAQI,QAAA,KAAA,MAIJ,iBACE,cAAA,EACA,aAAA,E7BTE,cAAA,E8BDJ,OACE,SAAA,SACA,QAAA,OAAA,QACA,cAAA,KACA,OAAA,IAAA,MAAA,Y9BHE,cAAA,O8BQJ,eAEE,MAAA,QAIF,YACE,YAAA,IAQF,mBACE,cAAA,KADF,0BAKI,SAAA,SACA,IAAA,EACA,MAAA,EACA,QAAA,OAAA,QACA,MAAA,QAUF,eC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,kBACE,iBAAA,QAGF,2BACE,MAAA,QDqCF,iBC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,oBACE,iBAAA,QAGF,6BACE,MAAA,QDqCF,eC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,kBACE,iBAAA,QAGF,2BACE,MAAA,QDqCF,YC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,eACE,iBAAA,QAGF,wBACE,MAAA,QDqCF,eC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,kBACE,iBAAA,QAGF,2BACE,MAAA,QDqCF,cC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,iBACE,iBAAA,QAGF,0BACE,MAAA,QDqCF,aC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,gBACE,iBAAA,QAGF,yBACE,MAAA,QDqCF,YC9CA,MAAA,QpBKE,iBAAA,QoBHF,aAAA,QAEA,eACE,iBAAA,QAGF,wBACE,MAAA,QCRF,wCACE,KAAO,oBAAA,KAAA,EACP,GAAK,oBAAA,EAAA,GAFP,gCACE,KAAO,oBAAA,KAAA,EACP,GAAK,oBAAA,EAAA,GAIT,UACE,QAAA,KACA,OAAA,KACA,SAAA,OvCoHI,UAAA,OuClHJ,iBAAA,QhCRE,cAAA,OgCaJ,cACE,QAAA,KACA,eAAA,OACA,gBAAA,OACA,MAAA,KACA,WAAA,OACA,YAAA,OACA,iBAAA,QvBnBI,WAAA,MAAA,IAAA,KAKF,uCuBOJ,cvBNM,WAAA,MuBiBN,sBrBcE,iBAAA,iKqBZA,gBAAA,KAAA,KAIA,uBACE,kBAAA,qBAAA,GAAA,OAAA,SAAA,UAAA,qBAAA,GAAA,OAAA,SAEA,uCAHF,uBAII,kBAAA,KAAA,UAAA,MCvCN,OACE,QAAA,KACA,YAAA,WAGF,YACE,KAAA,ECFF,YACE,QAAA,KACA,eAAA,OAGA,aAAA,EACA,cAAA,EASF,wBACE,MAAA,KACA,MAAA,QACA,WAAA,QvCNA,8BAAA,8BuCUE,QAAA,EACA,MAAA,QACA,gBAAA,KACA,iBAAA,QAVJ,+BAcI,MAAA,QACA,iBAAA,QASJ,iBACE,SAAA,SACA,QAAA,MACA,QAAA,OAAA,QAEA,cAAA,KAEA,iBAAA,KACA,OAAA,IAAA,MAAA,iBARF,6BlC7BI,uBAAA,OACA,wBAAA,OkC4BJ,4BAeI,cAAA,ElC9BA,2BAAA,OACA,0BAAA,OkCcJ,0BAAA,0BAqBI,MAAA,QACA,eAAA,KACA,iBAAA,KAvBJ,wBA4BI,QAAA,EACA,MAAA,KACA,iBAAA,QACA,aAAA,QAaA,uBACE,eAAA,IADF,wCAII,aAAA,KACA,cAAA,EALJ,oDlCpDA,uBAAA,OACA,0BAAA,OAYA,wBAAA,EkCuCA,mDAaM,aAAA,ElC/EN,wBAAA,OACA,2BAAA,OAsCA,0BAAA,EIAA,yB8B2BA,0BACE,eAAA,IADF,2CAII,aAAA,KACA,cAAA,EALJ,uDlCpDA,uBAAA,OACA,0BAAA,OAYA,wBAAA,EkCuCA,sDAaM,aAAA,ElC/EN,wBAAA,OACA,2BAAA,OAsCA,0BAAA,GIAA,yB8B2BA,0BACE,eAAA,IADF,2CAII,aAAA,KACA,cAAA,EALJ,uDlCpDA,uBAAA,OACA,0BAAA,OAYA,wBAAA,EkCuCA,sDAaM,aAAA,ElC/EN,wBAAA,OACA,2BAAA,OAsCA,0BAAA,GIAA,yB8B2BA,0BACE,eAAA,IADF,2CAII,aAAA,KACA,cAAA,EALJ,uDlCpDA,uBAAA,OACA,0BAAA,OAYA,wBAAA,EkCuCA,sDAaM,aAAA,ElC/EN,wBAAA,OACA,2BAAA,OAsCA,0BAAA,GIAA,0B8B2BA,0BACE,eAAA,IADF,2CAII,aAAA,KACA,cAAA,EALJ,uDlCpDA,uBAAA,OACA,0BAAA,OAYA,wBAAA,EkCuCA,sDAaM,aAAA,ElC/EN,wBAAA,OACA,2BAAA,OAsCA,0BAAA,GkCuDJ,mCAEI,aAAA,EACA,YAAA,ElCjHA,cAAA,EkC8GJ,8CAOM,cAAA,KAPN,2DAaM,WAAA,EAbN,yDAmBM,cAAA,EACA,cAAA,ECpIJ,yBACE,MAAA,QACA,iBAAA,QxCWF,sDAAA,sDwCPM,MAAA,QACA,iBAAA,QAPN,uDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,2BACE,MAAA,QACA,iBAAA,QxCWF,wDAAA,wDwCPM,MAAA,QACA,iBAAA,QAPN,yDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,yBACE,MAAA,QACA,iBAAA,QxCWF,sDAAA,sDwCPM,MAAA,QACA,iBAAA,QAPN,uDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,sBACE,MAAA,QACA,iBAAA,QxCWF,mDAAA,mDwCPM,MAAA,QACA,iBAAA,QAPN,oDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,yBACE,MAAA,QACA,iBAAA,QxCWF,sDAAA,sDwCPM,MAAA,QACA,iBAAA,QAPN,uDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,wBACE,MAAA,QACA,iBAAA,QxCWF,qDAAA,qDwCPM,MAAA,QACA,iBAAA,QAPN,sDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,uBACE,MAAA,QACA,iBAAA,QxCWF,oDAAA,oDwCPM,MAAA,QACA,iBAAA,QAPN,qDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,sBACE,MAAA,QACA,iBAAA,QxCWF,mDAAA,mDwCPM,MAAA,QACA,iBAAA,QAPN,oDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QChBR,OACE,MAAA,M3C8HI,UAAA,O2C5HJ,YAAA,IACA,YAAA,EACA,MAAA,KACA,YAAA,EAAA,IAAA,EAAA,KACA,QAAA,GzCKA,ayCDE,MAAA,KACA,gBAAA,KzCIF,2CAAA,2CyCCI,QAAA,IAWN,aACE,QAAA,EACA,iBAAA,YACA,OAAA,EACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KAMF,iBACE,eAAA,KCvCF,OACE,UAAA,MACA,SAAA,O5C6HI,UAAA,Q4C1HJ,iBAAA,sBACA,gBAAA,YACA,OAAA,IAAA,MAAA,eACA,WAAA,EAAA,OAAA,OAAA,eACA,wBAAA,WAAA,gBAAA,WACA,QAAA,ErCLE,cAAA,OqCLJ,wBAcI,cAAA,OAdJ,eAkBI,QAAA,EAlBJ,YAsBI,QAAA,MACA,QAAA,EAvBJ,YA2BI,QAAA,KAIJ,cACE,QAAA,KACA,YAAA,OACA,QAAA,OAAA,OACA,MAAA,QACA,iBAAA,sBACA,gBAAA,YACA,cAAA,IAAA,MAAA,gBAGF,YACE,QAAA,OCpCF,YAEE,SAAA,OAFF,mBAKI,WAAA,OACA,WAAA,KAKJ,OACE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,OAAA,KACA,SAAA,OAGA,QAAA,EAOF,cACE,SAAA,SACA,MAAA,KACA,OAAA,MAEA,eAAA,KAGA,0B7BrCI,WAAA,kBAAA,IAAA,SAAA,WAAA,UAAA,IAAA,SAAA,WAAA,UAAA,IAAA,QAAA,CAAA,kBAAA,IAAA,S6BuCF,kBAAA,mBAAA,UAAA,mB7BlCA,uC6BgCF,0B7B/BI,WAAA,M6BmCJ,0BACE,kBAAA,KAAA,UAAA,KAIJ,yBACE,QAAA,KACA,WAAA,kBAFF,wCAKI,WAAA,mBACA,SAAA,O9Co0KJ,uC8C10KA,uCAWI,YAAA,EAXJ,qCAeI,WAAA,KAIJ,uBACE,QAAA,KACA,YAAA,OACA,WAAA,kBAHF,+BAOI,QAAA,MACA,OAAA,mBACA,QAAA,GATJ,+CAcI,eAAA,OACA,gBAAA,OACA,OAAA,KAhBJ,8DAmBM,WAAA,KAnBN,uDAuBM,QAAA,KAMN,eACE,SAAA,SACA,QAAA,KACA,eAAA,OACA,MAAA,KAGA,eAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,etCzGE,cAAA,MsC6GF,QAAA,EAIF,gBACE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,MAAA,MACA,OAAA,MACA,iBAAA,KAPF,qBAUW,QAAA,EAVX,qBAWW,QAAA,GAKX,cACE,QAAA,KACA,YAAA,WACA,gBAAA,cACA,QAAA,KAAA,KACA,cAAA,IAAA,MAAA,QtC7HE,uBAAA,MACA,wBAAA,MsCuHJ,qBASI,QAAA,KAAA,KAEA,OAAA,MAAA,MAAA,MAAA,KAKJ,aACE,cAAA,EACA,YAAA,IAKF,YACE,SAAA,SAGA,KAAA,EAAA,EAAA,KACA,QAAA,KAIF,cACE,QAAA,KACA,YAAA,OACA,gBAAA,SACA,QAAA,KACA,WAAA,IAAA,MAAA,QtC/IE,2BAAA,MACA,0BAAA,MsCyIJ,iCASyB,YAAA,OATzB,gCAUwB,aAAA,OAIxB,yBACE,SAAA,SACA,IAAA,QACA,MAAA,KACA,OAAA,KACA,SAAA,OlC7HE,yBkCzBJ,cA6JI,UAAA,MACA,OAAA,QAAA,KA7IJ,yBAiJI,WAAA,oBAjJJ,wCAoJM,WAAA,qBAjIN,uBAsII,WAAA,oBAtIJ,+BAyIM,OAAA,qBAQJ,UAAY,UAAA,OlC5JV,yBkCgKF,U9C+yKA,U8C7yKE,UAAA,OlClKA,0BkCuKF,UAAY,UAAA,QClOd,SACE,SAAA,SACA,QAAA,KACA,QAAA,MACA,OAAA,ECJA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,YAAA,OACA,WAAA,K/CgHI,UAAA,Q8CpHJ,UAAA,WACA,QAAA,EAXF,cAaW,QAAA,GAbX,wBAgBI,SAAA,SACA,QAAA,MACA,MAAA,MACA,OAAA,MAnBJ,gCAsBM,SAAA,SACA,QAAA,GACA,aAAA,YACA,aAAA,MAKN,mCAAA,gBACE,QAAA,MAAA,EADF,kDAAA,+BAII,OAAA,EAJJ,0DAAA,uCAOM,IAAA,EACA,aAAA,MAAA,MAAA,EACA,iBAAA,KAKN,qCAAA,kBACE,QAAA,EAAA,MADF,oDAAA,iCAII,KAAA,EACA,MAAA,MACA,OAAA,MANJ,4DAAA,yCASM,MAAA,EACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,KAKN,sCAAA,mBACE,QAAA,MAAA,EADF,qDAAA,kCAII,IAAA,EAJJ,6DAAA,0CAOM,OAAA,EACA,aAAA,EAAA,MAAA,MACA,oBAAA,KAKN,oCAAA,iBACE,QAAA,EAAA,MADF,mDAAA,gCAII,MAAA,EACA,MAAA,MACA,OAAA,MANJ,2DAAA,wCASM,KAAA,EACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,KAqBN,eACE,UAAA,MACA,QAAA,OAAA,MACA,MAAA,KACA,WAAA,OACA,iBAAA,KvC3GE,cAAA,OyCLJ,SACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,MACA,UAAA,MDLA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,YAAA,OACA,WAAA,K/CgHI,UAAA,QgDnHJ,UAAA,WACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,ezCVE,cAAA,MyCLJ,wBAoBI,SAAA,SACA,QAAA,MACA,MAAA,KACA,OAAA,MACA,OAAA,EAAA,MAxBJ,+BAAA,gCA4BM,SAAA,SACA,QAAA,MACA,QAAA,GACA,aAAA,YACA,aAAA,MAKN,mCAAA,gBACE,cAAA,MADF,kDAAA,+BAII,OAAA,yBAJJ,0DAAA,uCAOM,OAAA,EACA,aAAA,MAAA,MAAA,EACA,iBAAA,gBATN,yDAAA,sCAaM,OAAA,IACA,aAAA,MAAA,MAAA,EACA,iBAAA,KAKN,qCAAA,kBACE,YAAA,MADF,oDAAA,iCAII,KAAA,yBACA,MAAA,MACA,OAAA,KACA,OAAA,MAAA,EAPJ,4DAAA,yCAUM,KAAA,EACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,gBAZN,2DAAA,wCAgBM,KAAA,IACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,KAKN,sCAAA,mBACE,WAAA,MADF,qDAAA,kCAII,IAAA,yBAJJ,6DAAA,0CAOM,IAAA,EACA,aAAA,EAAA,MAAA,MAAA,MACA,oBAAA,gBATN,4DAAA,yCAaM,IAAA,IACA,aAAA,EAAA,MAAA,MAAA,MACA,oBAAA,KAfN,8DAAA,2CAqBI,SAAA,SACA,IAAA,EACA,KAAA,IACA,QAAA,MACA,MAAA,KACA,YAAA,OACA,QAAA,GACA,cAAA,IAAA,MAAA,QAIJ,oCAAA,iBACE,aAAA,MADF,mDAAA,gCAII,MAAA,yBACA,MAAA,MACA,OAAA,KACA,OAAA,MAAA,EAPJ,2DAAA,wCAUM,MAAA,EACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,gBAZN,0DAAA,uCAgBM,MAAA,IACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,KAsBN,gBACE,QAAA,MAAA,OACA,cAAA,EhD3BI,UAAA,KgD8BJ,iBAAA,QACA,cAAA,IAAA,MAAA,QzChJE,uBAAA,kBACA,wBAAA,kByCyIJ,sBAWI,QAAA,KAIJ,cACE,QAAA,MAAA,OACA,MAAA,QC5JF,UACE,SAAA,SAGF,wBACE,aAAA,MAGF,gBACE,SAAA,SACA,MAAA,KACA,SAAA,OCvBA,uBACE,QAAA,MACA,MAAA,KACA,QAAA,GDwBJ,eACE,SAAA,SACA,QAAA,KACA,MAAA,KACA,MAAA,KACA,aAAA,MACA,4BAAA,OAAA,oBAAA,OjC5BI,WAAA,kBAAA,IAAA,YAAA,WAAA,UAAA,IAAA,YAAA,WAAA,UAAA,IAAA,WAAA,CAAA,kBAAA,IAAA,YAKF,uCiCiBJ,ejChBM,WAAA,MjBk0LN,oBACA,oBkDzyLA,sBAGE,QAAA,MlD2yLF,4BkDxyLA,6CAEE,kBAAA,iBAAA,UAAA,iBlD4yLF,2BkDzyLA,8CAEE,kBAAA,kBAAA,UAAA,kBAQF,8BAEI,QAAA,EACA,oBAAA,QACA,kBAAA,KAAA,UAAA,KlDwyLJ,sDACA,uDkD7yLA,qCAUI,QAAA,EACA,QAAA,EAXJ,0ClDmzLA,2CkDnyLI,QAAA,EACA,QAAA,EjCtEE,WAAA,GAAA,IAAA,QAKF,uCiCgDJ,0ClD2zLE,2CiB12LI,WAAA,MjBg3LN,uBkDtyLA,uBAEE,SAAA,SACA,IAAA,EACA,OAAA,EACA,QAAA,EAEA,QAAA,KACA,YAAA,OACA,gBAAA,OACA,MAAA,IACA,MAAA,KACA,WAAA,OACA,QAAA,GjC7FI,WAAA,QAAA,KAAA,KAKF,uCjBk4LF,uBkDvzLF,uBjC1EM,WAAA,MjBw4LN,6BADA,6BGn4LE,6BAAA,6B+CwFE,MAAA,KACA,gBAAA,KACA,QAAA,EACA,QAAA,GAGJ,uBACE,KAAA,EAKF,uBACE,MAAA,ElD+yLF,4BkDxyLA,4BAEE,QAAA,aACA,MAAA,KACA,OAAA,KACA,WAAA,UAAA,GAAA,CAAA,KAAA,KAEF,4BACE,iBAAA,kLAEF,4BACE,iBAAA,kLASF,qBACE,SAAA,SACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,GACA,QAAA,KACA,gBAAA,OACA,aAAA,EAEA,aAAA,IACA,YAAA,IACA,WAAA,KAZF,wBAeI,WAAA,YACA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,OAAA,IACA,aAAA,IACA,YAAA,IACA,YAAA,OACA,OAAA,QACA,iBAAA,KACA,gBAAA,YAEA,WAAA,KAAA,MAAA,YACA,cAAA,KAAA,MAAA,YACA,QAAA,GjCtKE,WAAA,QAAA,IAAA,KAKF,uCiCqIJ,wBjCpIM,WAAA,MiCoIN,6BAiCI,QAAA,EASJ,kBACE,SAAA,SACA,MAAA,IACA,OAAA,KACA,KAAA,IACA,QAAA,GACA,YAAA,KACA,eAAA,KACA,MAAA,KACA,WAAA,OE/LF,kCACE,GAAK,kBAAA,eAAA,UAAA,gBADP,0BACE,GAAK,kBAAA,eAAA,UAAA,gBAGP,gBACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,eAAA,YACA,OAAA,MAAA,MAAA,aACA,mBAAA,YAEA,cAAA,IACA,kBAAA,eAAA,KAAA,OAAA,SAAA,UAAA,eAAA,KAAA,OAAA,SAGF,mBACE,MAAA,KACA,OAAA,KACA,aAAA,KAOF,gCACE,GACE,kBAAA,SAAA,UAAA,SAEF,IACE,QAAA,GALJ,wBACE,GACE,kBAAA,SAAA,UAAA,SAEF,IACE,QAAA,GAIJ,cACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,eAAA,YACA,iBAAA,aAEA,cAAA,IACA,QAAA,EACA,kBAAA,aAAA,KAAA,OAAA,SAAA,UAAA,aAAA,KAAA,OAAA,SAGF,iBACE,MAAA,KACA,OAAA,KCnDF,gBAAqB,eAAA,mBACrB,WAAqB,eAAA,cACrB,cAAqB,eAAA,iBACrB,cAAqB,eAAA,iBACrB,mBAAqB,eAAA,sBACrB,gBAAqB,eAAA,mBCFnB,YACE,iBAAA,kBnDUF,mBAAA,mBH2jMF,wBADA,wBsD/jMM,iBAAA,kBANJ,cACE,iBAAA,kBnDUF,qBAAA,qBHqkMF,0BADA,0BsDzkMM,iBAAA,kBANJ,YACE,iBAAA,kBnDUF,mBAAA,mBH+kMF,wBADA,wBsDnlMM,iBAAA,kBANJ,SACE,iBAAA,kBnDUF,gBAAA,gBHylMF,qBADA,qBsD7lMM,iBAAA,kBANJ,YACE,iBAAA,kBnDUF,mBAAA,mBHmmMF,wBADA,wBsDvmMM,iBAAA,kBANJ,WACE,iBAAA,kBnDUF,kBAAA,kBH6mMF,uBADA,uBsDjnMM,iBAAA,kBANJ,UACE,iBAAA,kBnDUF,iBAAA,iBHunMF,sBADA,sBsD3nMM,iBAAA,kBANJ,SACE,iBAAA,kBnDUF,gBAAA,gBHioMF,qBADA,qBsDroMM,iBAAA,kBCCN,UACE,iBAAA,eAGF,gBACE,iBAAA,sBCXF,QAAkB,OAAA,IAAA,MAAA,kBAClB,YAAkB,WAAA,IAAA,MAAA,kBAClB,cAAkB,aAAA,IAAA,MAAA,kBAClB,eAAkB,cAAA,IAAA,MAAA,kBAClB,aAAkB,YAAA,IAAA,MAAA,kBAElB,UAAmB,OAAA,YACnB,cAAmB,WAAA,YACnB,gBAAmB,aAAA,YACnB,iBAAmB,cAAA,YACnB,eAAmB,YAAA,YAGjB,gBACE,aAAA,kBADF,kBACE,aAAA,kBADF,gBACE,aAAA,kBADF,aACE,aAAA,kBADF,gBACE,aAAA,kBADF,eACE,aAAA,kBADF,cACE,aAAA,kBADF,aACE,aAAA,kBAIJ,cACE,aAAA,eAOF,YACE,cAAA,gBAGF,SACE,cAAA,iBAGF,aACE,uBAAA,iBACA,wBAAA,iBAGF,eACE,wBAAA,iBACA,2BAAA,iBAGF,gBACE,2BAAA,iBACA,0BAAA,iBAGF,cACE,uBAAA,iBACA,0BAAA,iBAGF,YACE,cAAA,gBAGF,gBACE,cAAA,cAGF,cACE,cAAA,gBAGF,WACE,cAAA,YLxEA,iBACE,QAAA,MACA,MAAA,KACA,QAAA,GMOE,QAAwB,QAAA,eAAxB,UAAwB,QAAA,iBAAxB,gBAAwB,QAAA,uBAAxB,SAAwB,QAAA,gBAAxB,SAAwB,QAAA,gBAAxB,aAAwB,QAAA,oBAAxB,cAAwB,QAAA,qBAAxB,QAAwB,QAAA,eAAxB,eAAwB,QAAA,sB7CiD1B,yB6CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,eAAxB,kBAAwB,QAAA,uB7CiD1B,yB6CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,eAAxB,kBAAwB,QAAA,uB7CiD1B,yB6CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,eAAxB,kBAAwB,QAAA,uB7CiD1B,0B6CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,eAAxB,kBAAwB,QAAA,uBAU9B,aAEI,cAAqB,QAAA,eAArB,gBAAqB,QAAA,iBAArB,sBAAqB,QAAA,uBAArB,eAAqB,QAAA,gBAArB,eAAqB,QAAA,gBAArB,mBAAqB,QAAA,oBAArB,oBAAqB,QAAA,qBAArB,cAAqB,QAAA,eAArB,qBAAqB,QAAA,uBCrBzB,kBACE,SAAA,SACA,QAAA,MACA,MAAA,KACA,QAAA,EACA,SAAA,OALF,0BAQI,QAAA,MACA,QAAA,GATJ,yC1Dk+MA,wBADA,yBAEA,yBACA,wB0Dn9MI,SAAA,SACA,IAAA,EACA,OAAA,EACA,KAAA,EACA,MAAA,KACA,OAAA,KACA,OAAA,EAQF,gCAEI,YAAA,WAFJ,gCAEI,YAAA,OAFJ,+BAEI,YAAA,IAFJ,+BAEI,YAAA,KCzBF,UAAgC,eAAA,cAChC,aAAgC,eAAA,iBAChC,kBAAgC,eAAA,sBAChC,qBAAgC,eAAA,yBAEhC,WAA8B,UAAA,eAC9B,aAA8B,UAAA,iBAC9B,mBAA8B,UAAA,uBAC9B,WAA8B,KAAA,EAAA,EAAA,eAC9B,aAA8B,UAAA,YAC9B,aAA8B,UAAA,YAC9B,eAA8B,YAAA,YAC9B,eAA8B,YAAA,YAE9B,uBAAoC,gBAAA,qBACpC,qBAAoC,gBAAA,mBACpC,wBAAoC,gBAAA,iBACpC,yBAAoC,gBAAA,wBACpC,wBAAoC,gBAAA,uBAEpC,mBAAiC,YAAA,qBACjC,iBAAiC,YAAA,mBACjC,oBAAiC,YAAA,iBACjC,sBAAiC,YAAA,mBACjC,qBAAiC,YAAA,kBAEjC,qBAAkC,cAAA,qBAClC,mBAAkC,cAAA,mBAClC,sBAAkC,cAAA,iBAClC,uBAAkC,cAAA,wBAClC,sBAAkC,cAAA,uBAClC,uBAAkC,cAAA,kBAElC,iBAAgC,WAAA,eAChC,kBAAgC,WAAA,qBAChC,gBAAgC,WAAA,mBAChC,mBAAgC,WAAA,iBAChC,qBAAgC,WAAA,mBAChC,oBAAgC,WAAA,kB/CYhC,yB+ClDA,aAAgC,eAAA,cAChC,gBAAgC,eAAA,iBAChC,qBAAgC,eAAA,sBAChC,wBAAgC,eAAA,yBAEhC,cAA8B,UAAA,eAC9B,gBAA8B,UAAA,iBAC9B,sBAA8B,UAAA,uBAC9B,cAA8B,KAAA,EAAA,EAAA,eAC9B,gBAA8B,UAAA,YAC9B,gBAA8B,UAAA,YAC9B,kBAA8B,YAAA,YAC9B,kBAA8B,YAAA,YAE9B,0BAAoC,gBAAA,qBACpC,wBAAoC,gBAAA,mBACpC,2BAAoC,gBAAA,iBACpC,4BAAoC,gBAAA,wBACpC,2BAAoC,gBAAA,uBAEpC,sBAAiC,YAAA,qBACjC,oBAAiC,YAAA,mBACjC,uBAAiC,YAAA,iBACjC,yBAAiC,YAAA,mBACjC,wBAAiC,YAAA,kBAEjC,wBAAkC,cAAA,qBAClC,sBAAkC,cAAA,mBAClC,yBAAkC,cAAA,iBAClC,0BAAkC,cAAA,wBAClC,yBAAkC,cAAA,uBAClC,0BAAkC,cAAA,kBAElC,oBAAgC,WAAA,eAChC,qBAAgC,WAAA,qBAChC,mBAAgC,WAAA,mBAChC,sBAAgC,WAAA,iBAChC,wBAAgC,WAAA,mBAChC,uBAAgC,WAAA,mB/CYhC,yB+ClDA,aAAgC,eAAA,cAChC,gBAAgC,eAAA,iBAChC,qBAAgC,eAAA,sBAChC,wBAAgC,eAAA,yBAEhC,cAA8B,UAAA,eAC9B,gBAA8B,UAAA,iBAC9B,sBAA8B,UAAA,uBAC9B,cAA8B,KAAA,EAAA,EAAA,eAC9B,gBAA8B,UAAA,YAC9B,gBAA8B,UAAA,YAC9B,kBAA8B,YAAA,YAC9B,kBAA8B,YAAA,YAE9B,0BAAoC,gBAAA,qBACpC,wBAAoC,gBAAA,mBACpC,2BAAoC,gBAAA,iBACpC,4BAAoC,gBAAA,wBACpC,2BAAoC,gBAAA,uBAEpC,sBAAiC,YAAA,qBACjC,oBAAiC,YAAA,mBACjC,uBAAiC,YAAA,iBACjC,yBAAiC,YAAA,mBACjC,wBAAiC,YAAA,kBAEjC,wBAAkC,cAAA,qBAClC,sBAAkC,cAAA,mBAClC,yBAAkC,cAAA,iBAClC,0BAAkC,cAAA,wBAClC,yBAAkC,cAAA,uBAClC,0BAAkC,cAAA,kBAElC,oBAAgC,WAAA,eAChC,qBAAgC,WAAA,qBAChC,mBAAgC,WAAA,mBAChC,sBAAgC,WAAA,iBAChC,wBAAgC,WAAA,mBAChC,uBAAgC,WAAA,mB/CYhC,yB+ClDA,aAAgC,eAAA,cAChC,gBAAgC,eAAA,iBAChC,qBAAgC,eAAA,sBAChC,wBAAgC,eAAA,yBAEhC,cAA8B,UAAA,eAC9B,gBAA8B,UAAA,iBAC9B,sBAA8B,UAAA,uBAC9B,cAA8B,KAAA,EAAA,EAAA,eAC9B,gBAA8B,UAAA,YAC9B,gBAA8B,UAAA,YAC9B,kBAA8B,YAAA,YAC9B,kBAA8B,YAAA,YAE9B,0BAAoC,gBAAA,qBACpC,wBAAoC,gBAAA,mBACpC,2BAAoC,gBAAA,iBACpC,4BAAoC,gBAAA,wBACpC,2BAAoC,gBAAA,uBAEpC,sBAAiC,YAAA,qBACjC,oBAAiC,YAAA,mBACjC,uBAAiC,YAAA,iBACjC,yBAAiC,YAAA,mBACjC,wBAAiC,YAAA,kBAEjC,wBAAkC,cAAA,qBAClC,sBAAkC,cAAA,mBAClC,yBAAkC,cAAA,iBAClC,0BAAkC,cAAA,wBAClC,yBAAkC,cAAA,uBAClC,0BAAkC,cAAA,kBAElC,oBAAgC,WAAA,eAChC,qBAAgC,WAAA,qBAChC,mBAAgC,WAAA,mBAChC,sBAAgC,WAAA,iBAChC,wBAAgC,WAAA,mBAChC,uBAAgC,WAAA,mB/CYhC,0B+ClDA,aAAgC,eAAA,cAChC,gBAAgC,eAAA,iBAChC,qBAAgC,eAAA,sBAChC,wBAAgC,eAAA,yBAEhC,cAA8B,UAAA,eAC9B,gBAA8B,UAAA,iBAC9B,sBAA8B,UAAA,uBAC9B,cAA8B,KAAA,EAAA,EAAA,eAC9B,gBAA8B,UAAA,YAC9B,gBAA8B,UAAA,YAC9B,kBAA8B,YAAA,YAC9B,kBAA8B,YAAA,YAE9B,0BAAoC,gBAAA,qBACpC,wBAAoC,gBAAA,mBACpC,2BAAoC,gBAAA,iBACpC,4BAAoC,gBAAA,wBACpC,2BAAoC,gBAAA,uBAEpC,sBAAiC,YAAA,qBACjC,oBAAiC,YAAA,mBACjC,uBAAiC,YAAA,iBACjC,yBAAiC,YAAA,mBACjC,wBAAiC,YAAA,kBAEjC,wBAAkC,cAAA,qBAClC,sBAAkC,cAAA,mBAClC,yBAAkC,cAAA,iBAClC,0BAAkC,cAAA,wBAClC,yBAAkC,cAAA,uBAClC,0BAAkC,cAAA,kBAElC,oBAAgC,WAAA,eAChC,qBAAgC,WAAA,qBAChC,mBAAgC,WAAA,mBAChC,sBAAgC,WAAA,iBAChC,wBAAgC,WAAA,mBAChC,uBAAgC,WAAA,mBC1ChC,YAAwB,MAAA,eACxB,aAAwB,MAAA,gBACxB,YAAwB,MAAA,ehDoDxB,yBgDtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gBhDoDxB,yBgDtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gBhDoDxB,yBgDtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gBhDoDxB,0BgDtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gBCL1B,eAAsB,SAAA,eAAtB,iBAAsB,SAAA,iBCCtB,iBAAyB,SAAA,iBAAzB,mBAAyB,SAAA,mBAAzB,mBAAyB,SAAA,mBAAzB,gBAAyB,SAAA,gBAAzB,iBAAyB,SAAA,yBAAA,SAAA,iBAK3B,WACE,SAAA,MACA,IAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,KAGF,cACE,SAAA,MACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,KAI4B,2DAD9B,YAEI,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MCzBJ,SCEE,SAAA,SACA,MAAA,IACA,OAAA,IACA,QAAA,EACA,SAAA,OACA,KAAA,cACA,YAAA,OACA,OAAA,EAUA,0BAAA,yBAEE,SAAA,OACA,MAAA,KACA,OAAA,KACA,SAAA,QACA,KAAA,KACA,YAAA,OC5BJ,WAAa,WAAA,EAAA,QAAA,OAAA,2BACb,QAAU,WAAA,EAAA,MAAA,KAAA,0BACV,WAAa,WAAA,EAAA,KAAA,KAAA,2BACb,aAAe,WAAA,eCCX,MAAuB,MAAA,cAAvB,MAAuB,MAAA,cAAvB,MAAuB,MAAA,cAAvB,OAAuB,MAAA,eAAvB,QAAuB,MAAA,eAAvB,MAAuB,OAAA,cAAvB,MAAuB,OAAA,cAAvB,MAAuB,OAAA,cAAvB,OAAuB,OAAA,eAAvB,QAAuB,OAAA,eAI3B,QAAU,UAAA,eACV,QAAU,WAAA,eAIV,YAAc,UAAA,gBACd,YAAc,WAAA,gBAEd,QAAU,MAAA,gBACV,QAAU,OAAA,gBCfV,uBAEI,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,EAEA,eAAA,KACA,QAAA,GAEA,iBAAA,cCNI,KAAgC,OAAA,YAChC,MpEwwOR,MoEtwOU,WAAA,YAEF,MpEywOR,MoEvwOU,aAAA,YAEF,MpE0wOR,MoExwOU,cAAA,YAEF,MpE2wOR,MoEzwOU,YAAA,YAfF,KAAgC,OAAA,iBAChC,MpEgyOR,MoE9xOU,WAAA,iBAEF,MpEiyOR,MoE/xOU,aAAA,iBAEF,MpEkyOR,MoEhyOU,cAAA,iBAEF,MpEmyOR,MoEjyOU,YAAA,iBAfF,KAAgC,OAAA,gBAChC,MpEwzOR,MoEtzOU,WAAA,gBAEF,MpEyzOR,MoEvzOU,aAAA,gBAEF,MpE0zOR,MoExzOU,cAAA,gBAEF,MpE2zOR,MoEzzOU,YAAA,gBAfF,KAAgC,OAAA,eAChC,MpEg1OR,MoE90OU,WAAA,eAEF,MpEi1OR,MoE/0OU,aAAA,eAEF,MpEk1OR,MoEh1OU,cAAA,eAEF,MpEm1OR,MoEj1OU,YAAA,eAfF,KAAgC,OAAA,iBAChC,MpEw2OR,MoEt2OU,WAAA,iBAEF,MpEy2OR,MoEv2OU,aAAA,iBAEF,MpE02OR,MoEx2OU,cAAA,iBAEF,MpE22OR,MoEz2OU,YAAA,iBAfF,KAAgC,OAAA,eAChC,MpEg4OR,MoE93OU,WAAA,eAEF,MpEi4OR,MoE/3OU,aAAA,eAEF,MpEk4OR,MoEh4OU,cAAA,eAEF,MpEm4OR,MoEj4OU,YAAA,eAfF,KAAgC,QAAA,YAChC,MpEw5OR,MoEt5OU,YAAA,YAEF,MpEy5OR,MoEv5OU,cAAA,YAEF,MpE05OR,MoEx5OU,eAAA,YAEF,MpE25OR,MoEz5OU,aAAA,YAfF,KAAgC,QAAA,iBAChC,MpEg7OR,MoE96OU,YAAA,iBAEF,MpEi7OR,MoE/6OU,cAAA,iBAEF,MpEk7OR,MoEh7OU,eAAA,iBAEF,MpEm7OR,MoEj7OU,aAAA,iBAfF,KAAgC,QAAA,gBAChC,MpEw8OR,MoEt8OU,YAAA,gBAEF,MpEy8OR,MoEv8OU,cAAA,gBAEF,MpE08OR,MoEx8OU,eAAA,gBAEF,MpE28OR,MoEz8OU,aAAA,gBAfF,KAAgC,QAAA,eAChC,MpEg+OR,MoE99OU,YAAA,eAEF,MpEi+OR,MoE/9OU,cAAA,eAEF,MpEk+OR,MoEh+OU,eAAA,eAEF,MpEm+OR,MoEj+OU,aAAA,eAfF,KAAgC,QAAA,iBAChC,MpEw/OR,MoEt/OU,YAAA,iBAEF,MpEy/OR,MoEv/OU,cAAA,iBAEF,MpE0/OR,MoEx/OU,eAAA,iBAEF,MpE2/OR,MoEz/OU,aAAA,iBAfF,KAAgC,QAAA,eAChC,MpEghPR,MoE9gPU,YAAA,eAEF,MpEihPR,MoE/gPU,cAAA,eAEF,MpEkhPR,MoEhhPU,eAAA,eAEF,MpEmhPR,MoEjhPU,aAAA,eAQF,MAAwB,OAAA,kBACxB,OpEihPR,OoE/gPU,WAAA,kBAEF,OpEkhPR,OoEhhPU,aAAA,kBAEF,OpEmhPR,OoEjhPU,cAAA,kBAEF,OpEohPR,OoElhPU,YAAA,kBAfF,MAAwB,OAAA,iBACxB,OpEyiPR,OoEviPU,WAAA,iBAEF,OpE0iPR,OoExiPU,aAAA,iBAEF,OpE2iPR,OoEziPU,cAAA,iBAEF,OpE4iPR,OoE1iPU,YAAA,iBAfF,MAAwB,OAAA,gBACxB,OpEikPR,OoE/jPU,WAAA,gBAEF,OpEkkPR,OoEhkPU,aAAA,gBAEF,OpEmkPR,OoEjkPU,cAAA,gBAEF,OpEokPR,OoElkPU,YAAA,gBAfF,MAAwB,OAAA,kBACxB,OpEylPR,OoEvlPU,WAAA,kBAEF,OpE0lPR,OoExlPU,aAAA,kBAEF,OpE2lPR,OoEzlPU,cAAA,kBAEF,OpE4lPR,OoE1lPU,YAAA,kBAfF,MAAwB,OAAA,gBACxB,OpEinPR,OoE/mPU,WAAA,gBAEF,OpEknPR,OoEhnPU,aAAA,gBAEF,OpEmnPR,OoEjnPU,cAAA,gBAEF,OpEonPR,OoElnPU,YAAA,gBAMN,QAAmB,OAAA,eACnB,SpEonPJ,SoElnPM,WAAA,eAEF,SpEqnPJ,SoEnnPM,aAAA,eAEF,SpEsnPJ,SoEpnPM,cAAA,eAEF,SpEunPJ,SoErnPM,YAAA,exDTF,yBwDlDI,QAAgC,OAAA,YAChC,SpEwrPN,SoEtrPQ,WAAA,YAEF,SpEwrPN,SoEtrPQ,aAAA,YAEF,SpEwrPN,SoEtrPQ,cAAA,YAEF,SpEwrPN,SoEtrPQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SpE2sPN,SoEzsPQ,WAAA,iBAEF,SpE2sPN,SoEzsPQ,aAAA,iBAEF,SpE2sPN,SoEzsPQ,cAAA,iBAEF,SpE2sPN,SoEzsPQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SpE8tPN,SoE5tPQ,WAAA,gBAEF,SpE8tPN,SoE5tPQ,aAAA,gBAEF,SpE8tPN,SoE5tPQ,cAAA,gBAEF,SpE8tPN,SoE5tPQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SpEivPN,SoE/uPQ,WAAA,eAEF,SpEivPN,SoE/uPQ,aAAA,eAEF,SpEivPN,SoE/uPQ,cAAA,eAEF,SpEivPN,SoE/uPQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SpEowPN,SoElwPQ,WAAA,iBAEF,SpEowPN,SoElwPQ,aAAA,iBAEF,SpEowPN,SoElwPQ,cAAA,iBAEF,SpEowPN,SoElwPQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SpEuxPN,SoErxPQ,WAAA,eAEF,SpEuxPN,SoErxPQ,aAAA,eAEF,SpEuxPN,SoErxPQ,cAAA,eAEF,SpEuxPN,SoErxPQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SpE0yPN,SoExyPQ,YAAA,YAEF,SpE0yPN,SoExyPQ,cAAA,YAEF,SpE0yPN,SoExyPQ,eAAA,YAEF,SpE0yPN,SoExyPQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SpE6zPN,SoE3zPQ,YAAA,iBAEF,SpE6zPN,SoE3zPQ,cAAA,iBAEF,SpE6zPN,SoE3zPQ,eAAA,iBAEF,SpE6zPN,SoE3zPQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SpEg1PN,SoE90PQ,YAAA,gBAEF,SpEg1PN,SoE90PQ,cAAA,gBAEF,SpEg1PN,SoE90PQ,eAAA,gBAEF,SpEg1PN,SoE90PQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SpEm2PN,SoEj2PQ,YAAA,eAEF,SpEm2PN,SoEj2PQ,cAAA,eAEF,SpEm2PN,SoEj2PQ,eAAA,eAEF,SpEm2PN,SoEj2PQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SpEs3PN,SoEp3PQ,YAAA,iBAEF,SpEs3PN,SoEp3PQ,cAAA,iBAEF,SpEs3PN,SoEp3PQ,eAAA,iBAEF,SpEs3PN,SoEp3PQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SpEy4PN,SoEv4PQ,YAAA,eAEF,SpEy4PN,SoEv4PQ,cAAA,eAEF,SpEy4PN,SoEv4PQ,eAAA,eAEF,SpEy4PN,SoEv4PQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UpEq4PN,UoEn4PQ,WAAA,kBAEF,UpEq4PN,UoEn4PQ,aAAA,kBAEF,UpEq4PN,UoEn4PQ,cAAA,kBAEF,UpEq4PN,UoEn4PQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UpEw5PN,UoEt5PQ,WAAA,iBAEF,UpEw5PN,UoEt5PQ,aAAA,iBAEF,UpEw5PN,UoEt5PQ,cAAA,iBAEF,UpEw5PN,UoEt5PQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UpE26PN,UoEz6PQ,WAAA,gBAEF,UpE26PN,UoEz6PQ,aAAA,gBAEF,UpE26PN,UoEz6PQ,cAAA,gBAEF,UpE26PN,UoEz6PQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UpE87PN,UoE57PQ,WAAA,kBAEF,UpE87PN,UoE57PQ,aAAA,kBAEF,UpE87PN,UoE57PQ,cAAA,kBAEF,UpE87PN,UoE57PQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UpEi9PN,UoE/8PQ,WAAA,gBAEF,UpEi9PN,UoE/8PQ,aAAA,gBAEF,UpEi9PN,UoE/8PQ,cAAA,gBAEF,UpEi9PN,UoE/8PQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YpE+8PF,YoE78PI,WAAA,eAEF,YpE+8PF,YoE78PI,aAAA,eAEF,YpE+8PF,YoE78PI,cAAA,eAEF,YpE+8PF,YoE78PI,YAAA,gBxDTF,yBwDlDI,QAAgC,OAAA,YAChC,SpEihQN,SoE/gQQ,WAAA,YAEF,SpEihQN,SoE/gQQ,aAAA,YAEF,SpEihQN,SoE/gQQ,cAAA,YAEF,SpEihQN,SoE/gQQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SpEoiQN,SoEliQQ,WAAA,iBAEF,SpEoiQN,SoEliQQ,aAAA,iBAEF,SpEoiQN,SoEliQQ,cAAA,iBAEF,SpEoiQN,SoEliQQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SpEujQN,SoErjQQ,WAAA,gBAEF,SpEujQN,SoErjQQ,aAAA,gBAEF,SpEujQN,SoErjQQ,cAAA,gBAEF,SpEujQN,SoErjQQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SpE0kQN,SoExkQQ,WAAA,eAEF,SpE0kQN,SoExkQQ,aAAA,eAEF,SpE0kQN,SoExkQQ,cAAA,eAEF,SpE0kQN,SoExkQQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SpE6lQN,SoE3lQQ,WAAA,iBAEF,SpE6lQN,SoE3lQQ,aAAA,iBAEF,SpE6lQN,SoE3lQQ,cAAA,iBAEF,SpE6lQN,SoE3lQQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SpEgnQN,SoE9mQQ,WAAA,eAEF,SpEgnQN,SoE9mQQ,aAAA,eAEF,SpEgnQN,SoE9mQQ,cAAA,eAEF,SpEgnQN,SoE9mQQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SpEmoQN,SoEjoQQ,YAAA,YAEF,SpEmoQN,SoEjoQQ,cAAA,YAEF,SpEmoQN,SoEjoQQ,eAAA,YAEF,SpEmoQN,SoEjoQQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SpEspQN,SoEppQQ,YAAA,iBAEF,SpEspQN,SoEppQQ,cAAA,iBAEF,SpEspQN,SoEppQQ,eAAA,iBAEF,SpEspQN,SoEppQQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SpEyqQN,SoEvqQQ,YAAA,gBAEF,SpEyqQN,SoEvqQQ,cAAA,gBAEF,SpEyqQN,SoEvqQQ,eAAA,gBAEF,SpEyqQN,SoEvqQQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SpE4rQN,SoE1rQQ,YAAA,eAEF,SpE4rQN,SoE1rQQ,cAAA,eAEF,SpE4rQN,SoE1rQQ,eAAA,eAEF,SpE4rQN,SoE1rQQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SpE+sQN,SoE7sQQ,YAAA,iBAEF,SpE+sQN,SoE7sQQ,cAAA,iBAEF,SpE+sQN,SoE7sQQ,eAAA,iBAEF,SpE+sQN,SoE7sQQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SpEkuQN,SoEhuQQ,YAAA,eAEF,SpEkuQN,SoEhuQQ,cAAA,eAEF,SpEkuQN,SoEhuQQ,eAAA,eAEF,SpEkuQN,SoEhuQQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UpE8tQN,UoE5tQQ,WAAA,kBAEF,UpE8tQN,UoE5tQQ,aAAA,kBAEF,UpE8tQN,UoE5tQQ,cAAA,kBAEF,UpE8tQN,UoE5tQQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UpEivQN,UoE/uQQ,WAAA,iBAEF,UpEivQN,UoE/uQQ,aAAA,iBAEF,UpEivQN,UoE/uQQ,cAAA,iBAEF,UpEivQN,UoE/uQQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UpEowQN,UoElwQQ,WAAA,gBAEF,UpEowQN,UoElwQQ,aAAA,gBAEF,UpEowQN,UoElwQQ,cAAA,gBAEF,UpEowQN,UoElwQQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UpEuxQN,UoErxQQ,WAAA,kBAEF,UpEuxQN,UoErxQQ,aAAA,kBAEF,UpEuxQN,UoErxQQ,cAAA,kBAEF,UpEuxQN,UoErxQQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UpE0yQN,UoExyQQ,WAAA,gBAEF,UpE0yQN,UoExyQQ,aAAA,gBAEF,UpE0yQN,UoExyQQ,cAAA,gBAEF,UpE0yQN,UoExyQQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YpEwyQF,YoEtyQI,WAAA,eAEF,YpEwyQF,YoEtyQI,aAAA,eAEF,YpEwyQF,YoEtyQI,cAAA,eAEF,YpEwyQF,YoEtyQI,YAAA,gBxDTF,yBwDlDI,QAAgC,OAAA,YAChC,SpE02QN,SoEx2QQ,WAAA,YAEF,SpE02QN,SoEx2QQ,aAAA,YAEF,SpE02QN,SoEx2QQ,cAAA,YAEF,SpE02QN,SoEx2QQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SpE63QN,SoE33QQ,WAAA,iBAEF,SpE63QN,SoE33QQ,aAAA,iBAEF,SpE63QN,SoE33QQ,cAAA,iBAEF,SpE63QN,SoE33QQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SpEg5QN,SoE94QQ,WAAA,gBAEF,SpEg5QN,SoE94QQ,aAAA,gBAEF,SpEg5QN,SoE94QQ,cAAA,gBAEF,SpEg5QN,SoE94QQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SpEm6QN,SoEj6QQ,WAAA,eAEF,SpEm6QN,SoEj6QQ,aAAA,eAEF,SpEm6QN,SoEj6QQ,cAAA,eAEF,SpEm6QN,SoEj6QQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SpEs7QN,SoEp7QQ,WAAA,iBAEF,SpEs7QN,SoEp7QQ,aAAA,iBAEF,SpEs7QN,SoEp7QQ,cAAA,iBAEF,SpEs7QN,SoEp7QQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SpEy8QN,SoEv8QQ,WAAA,eAEF,SpEy8QN,SoEv8QQ,aAAA,eAEF,SpEy8QN,SoEv8QQ,cAAA,eAEF,SpEy8QN,SoEv8QQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SpE49QN,SoE19QQ,YAAA,YAEF,SpE49QN,SoE19QQ,cAAA,YAEF,SpE49QN,SoE19QQ,eAAA,YAEF,SpE49QN,SoE19QQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SpE++QN,SoE7+QQ,YAAA,iBAEF,SpE++QN,SoE7+QQ,cAAA,iBAEF,SpE++QN,SoE7+QQ,eAAA,iBAEF,SpE++QN,SoE7+QQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SpEkgRN,SoEhgRQ,YAAA,gBAEF,SpEkgRN,SoEhgRQ,cAAA,gBAEF,SpEkgRN,SoEhgRQ,eAAA,gBAEF,SpEkgRN,SoEhgRQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SpEqhRN,SoEnhRQ,YAAA,eAEF,SpEqhRN,SoEnhRQ,cAAA,eAEF,SpEqhRN,SoEnhRQ,eAAA,eAEF,SpEqhRN,SoEnhRQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SpEwiRN,SoEtiRQ,YAAA,iBAEF,SpEwiRN,SoEtiRQ,cAAA,iBAEF,SpEwiRN,SoEtiRQ,eAAA,iBAEF,SpEwiRN,SoEtiRQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SpE2jRN,SoEzjRQ,YAAA,eAEF,SpE2jRN,SoEzjRQ,cAAA,eAEF,SpE2jRN,SoEzjRQ,eAAA,eAEF,SpE2jRN,SoEzjRQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UpEujRN,UoErjRQ,WAAA,kBAEF,UpEujRN,UoErjRQ,aAAA,kBAEF,UpEujRN,UoErjRQ,cAAA,kBAEF,UpEujRN,UoErjRQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UpE0kRN,UoExkRQ,WAAA,iBAEF,UpE0kRN,UoExkRQ,aAAA,iBAEF,UpE0kRN,UoExkRQ,cAAA,iBAEF,UpE0kRN,UoExkRQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UpE6lRN,UoE3lRQ,WAAA,gBAEF,UpE6lRN,UoE3lRQ,aAAA,gBAEF,UpE6lRN,UoE3lRQ,cAAA,gBAEF,UpE6lRN,UoE3lRQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UpEgnRN,UoE9mRQ,WAAA,kBAEF,UpEgnRN,UoE9mRQ,aAAA,kBAEF,UpEgnRN,UoE9mRQ,cAAA,kBAEF,UpEgnRN,UoE9mRQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UpEmoRN,UoEjoRQ,WAAA,gBAEF,UpEmoRN,UoEjoRQ,aAAA,gBAEF,UpEmoRN,UoEjoRQ,cAAA,gBAEF,UpEmoRN,UoEjoRQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YpEioRF,YoE/nRI,WAAA,eAEF,YpEioRF,YoE/nRI,aAAA,eAEF,YpEioRF,YoE/nRI,cAAA,eAEF,YpEioRF,YoE/nRI,YAAA,gBxDTF,0BwDlDI,QAAgC,OAAA,YAChC,SpEmsRN,SoEjsRQ,WAAA,YAEF,SpEmsRN,SoEjsRQ,aAAA,YAEF,SpEmsRN,SoEjsRQ,cAAA,YAEF,SpEmsRN,SoEjsRQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SpEstRN,SoEptRQ,WAAA,iBAEF,SpEstRN,SoEptRQ,aAAA,iBAEF,SpEstRN,SoEptRQ,cAAA,iBAEF,SpEstRN,SoEptRQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SpEyuRN,SoEvuRQ,WAAA,gBAEF,SpEyuRN,SoEvuRQ,aAAA,gBAEF,SpEyuRN,SoEvuRQ,cAAA,gBAEF,SpEyuRN,SoEvuRQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SpE4vRN,SoE1vRQ,WAAA,eAEF,SpE4vRN,SoE1vRQ,aAAA,eAEF,SpE4vRN,SoE1vRQ,cAAA,eAEF,SpE4vRN,SoE1vRQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SpE+wRN,SoE7wRQ,WAAA,iBAEF,SpE+wRN,SoE7wRQ,aAAA,iBAEF,SpE+wRN,SoE7wRQ,cAAA,iBAEF,SpE+wRN,SoE7wRQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SpEkyRN,SoEhyRQ,WAAA,eAEF,SpEkyRN,SoEhyRQ,aAAA,eAEF,SpEkyRN,SoEhyRQ,cAAA,eAEF,SpEkyRN,SoEhyRQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SpEqzRN,SoEnzRQ,YAAA,YAEF,SpEqzRN,SoEnzRQ,cAAA,YAEF,SpEqzRN,SoEnzRQ,eAAA,YAEF,SpEqzRN,SoEnzRQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SpEw0RN,SoEt0RQ,YAAA,iBAEF,SpEw0RN,SoEt0RQ,cAAA,iBAEF,SpEw0RN,SoEt0RQ,eAAA,iBAEF,SpEw0RN,SoEt0RQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SpE21RN,SoEz1RQ,YAAA,gBAEF,SpE21RN,SoEz1RQ,cAAA,gBAEF,SpE21RN,SoEz1RQ,eAAA,gBAEF,SpE21RN,SoEz1RQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SpE82RN,SoE52RQ,YAAA,eAEF,SpE82RN,SoE52RQ,cAAA,eAEF,SpE82RN,SoE52RQ,eAAA,eAEF,SpE82RN,SoE52RQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SpEi4RN,SoE/3RQ,YAAA,iBAEF,SpEi4RN,SoE/3RQ,cAAA,iBAEF,SpEi4RN,SoE/3RQ,eAAA,iBAEF,SpEi4RN,SoE/3RQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SpEo5RN,SoEl5RQ,YAAA,eAEF,SpEo5RN,SoEl5RQ,cAAA,eAEF,SpEo5RN,SoEl5RQ,eAAA,eAEF,SpEo5RN,SoEl5RQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UpEg5RN,UoE94RQ,WAAA,kBAEF,UpEg5RN,UoE94RQ,aAAA,kBAEF,UpEg5RN,UoE94RQ,cAAA,kBAEF,UpEg5RN,UoE94RQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UpEm6RN,UoEj6RQ,WAAA,iBAEF,UpEm6RN,UoEj6RQ,aAAA,iBAEF,UpEm6RN,UoEj6RQ,cAAA,iBAEF,UpEm6RN,UoEj6RQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UpEs7RN,UoEp7RQ,WAAA,gBAEF,UpEs7RN,UoEp7RQ,aAAA,gBAEF,UpEs7RN,UoEp7RQ,cAAA,gBAEF,UpEs7RN,UoEp7RQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UpEy8RN,UoEv8RQ,WAAA,kBAEF,UpEy8RN,UoEv8RQ,aAAA,kBAEF,UpEy8RN,UoEv8RQ,cAAA,kBAEF,UpEy8RN,UoEv8RQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UpE49RN,UoE19RQ,WAAA,gBAEF,UpE49RN,UoE19RQ,aAAA,gBAEF,UpE49RN,UoE19RQ,cAAA,gBAEF,UpE49RN,UoE19RQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YpE09RF,YoEx9RI,WAAA,eAEF,YpE09RF,YoEx9RI,aAAA,eAEF,YpE09RF,YoEx9RI,cAAA,eAEF,YpE09RF,YoEx9RI,YAAA,gBC/DN,gBAAkB,YAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,oBAIlB,cAAiB,WAAA,kBACjB,WAAiB,YAAA,iBACjB,aAAiB,YAAA,iBACjB,eCTE,SAAA,OACA,cAAA,SACA,YAAA,ODeE,WAAwB,WAAA,eACxB,YAAwB,WAAA,gBACxB,aAAwB,WAAA,iBzDqCxB,yByDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBzDqCxB,yByDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBzDqCxB,yByDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBzDqCxB,0ByDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBAM5B,gBAAmB,eAAA,oBACnB,gBAAmB,eAAA,oBACnB,iBAAmB,eAAA,qBAInB,mBAAuB,YAAA,cACvB,qBAAuB,YAAA,kBACvB,oBAAuB,YAAA,cACvB,kBAAuB,YAAA,cACvB,oBAAuB,YAAA,iBACvB,aAAuB,WAAA,iBAIvB,YAAc,MAAA,eEvCZ,cACE,MAAA,kBpEUF,qBAAA,qBoELM,MAAA,kBANN,gBACE,MAAA,kBpEUF,uBAAA,uBoELM,MAAA,kBANN,cACE,MAAA,kBpEUF,qBAAA,qBoELM,MAAA,kBANN,WACE,MAAA,kBpEUF,kBAAA,kBoELM,MAAA,kBANN,cACE,MAAA,kBpEUF,qBAAA,qBoELM,MAAA,kBANN,aACE,MAAA,kBpEUF,oBAAA,oBoELM,MAAA,kBANN,YACE,MAAA,kBpEUF,mBAAA,mBoELM,MAAA,kBANN,WACE,MAAA,kBpEUF,kBAAA,kBoELM,MAAA,kBFuCR,WAAa,MAAA,kBACb,YAAc,MAAA,kBAEd,eAAiB,MAAA,yBACjB,eAAiB,MAAA,+BAIjB,WGvDE,KAAA,CAAA,CAAA,EAAA,EACA,MAAA,YACA,YAAA,KACA,iBAAA,YACA,OAAA,EHuDF,sBAAwB,gBAAA,eAExB,YACE,WAAA,qBACA,cAAA,qBAKF,YAAc,MAAA,kBIjEd,SACE,WAAA,kBAGF,WACE,WAAA,iBCAA,a3EOF,EC0vSE,QADA,S0E1vSI,YAAA,eAEA,WAAA,eAGF,YAEI,gBAAA,UASJ,mBACE,QAAA,KAAA,YAAA,I3E+LN,I2EhLM,YAAA,mB1EyuSJ,W0EvuSE,IAEE,OAAA,IAAA,MAAA,QACA,kBAAA,MAQF,MACE,QAAA,mB1EmuSJ,I0EhuSE,GAEE,kBAAA,M1EkuSJ,GACA,G0EhuSE,EAGE,QAAA,EACA,OAAA,EAGF,G1E8tSF,G0E5tSI,iBAAA,MAQF,MACE,KAAA,G3E5CN,K2E+CM,UAAA,gBhEvFJ,WgE0FI,UAAA,gB5C9EN,Q4CmFM,QAAA,KvC/FN,OuCkGM,OAAA,IAAA,MAAA,K5DnGN,O4DuGM,gBAAA,mBADF,U1EwtSF,U0EntSM,iBAAA,e1EutSN,mBc1xSF,mB4D0EQ,OAAA,IAAA,MAAA,kB5DWR,Y4DNM,MAAA,Q1EotSJ,wBAFA,eex0SA,efy0SA,qB0E7sSM,aAAA,Q5DlBR,sB4DuBM,MAAA,QACA,aAAA","sourcesContent":["/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --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\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.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,\n.col-auto, .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,\n.col-sm-auto, .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,\n.col-md-auto, .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,\n.col-lg-auto, .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,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(0.75rem);\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion > .card:first-of-type:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .tooltip-arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .popover-arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .popover-arrow, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .popover-arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .popover-arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .popover-arrow, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .popover-arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .popover-arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n -webkit-transform: none;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border .75s linear infinite;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow .75s linear infinite;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --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\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.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,\n.col-auto, .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,\n.col-sm-auto, .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,\n.col-md-auto, .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,\n.col-lg-auto, .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,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion > .card:first-of-type:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .tooltip-arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .popover-arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .popover-arrow, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .popover-arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .popover-arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .popover-arrow, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .popover-arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .popover-arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus($ignore-warning: true);\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\nselect.form-control {\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `<label>/<legend>` default\n @include font-size(inherit); // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: $input-padding-y;\n padding-bottom: $input-padding-y;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n height: $input-height-sm;\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.form-control-lg {\n height: $input-height-lg;\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n// stylelint-disable-next-line no-duplicate-selectors\nselect.form-control {\n &[size],\n &[multiple] {\n height: auto;\n }\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$form-grid-gutter-width / 2;\n margin-left: -$form-grid-gutter-width / 2;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: $form-grid-gutter-width / 2;\n padding-left: $form-grid-gutter-width / 2;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n &:disabled ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@each $state, $data in $form-validation-states {\n @include form-validation-state($state, map-get($data, color), map-get($data, icon));\n}\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group,\n .custom-select {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n @include deprecate(\"The `form-control-focus()` mixin\", \"v4.3.2\", \"v5\", $ignore-warning);\n}\n\n\n@mixin form-validation-state($state, $color, $icon) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: color-yiq($color);\n background-color: rgba($color, $form-feedback-tooltip-opacity);\n @include border-radius($form-feedback-tooltip-border-radius);\n }\n\n .form-control {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-image: $icon;\n background-repeat: no-repeat;\n background-position: center right $input-height-inner-quarter;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n .was-validated &:#{$state},\n &.is-#{$state} {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .custom-select {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $custom-select-feedback-icon-padding-right;\n background: $custom-select-background, $icon $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n\n .form-control-file {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .form-check-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n border-color: $color;\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:checked {\n ~ .custom-control-label::before {\n border-color: lighten($color, 10%);\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n &:not(:checked) ~ .custom-control-label::before {\n border-color: $color;\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-file-label {\n border-color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:focus {\n ~ .custom-file-label {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-family: $btn-font-family;\n font-weight: $btn-font-weight;\n color: $body-color;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n @include hover {\n color: $body-color;\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active {\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n text-decoration: $link-decoration;\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n box-shadow: none;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n border-color: $color;\n\n @include hover {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @include border-radius($border-radius, 0);\n}\n",".fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n\n // Generate the caret automatically\n @include caret;\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n @include font-size($dropdown-font-size);\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .dropdown-menu#{$infix}-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu#{$infix}-right {\n right: 0;\n left: auto;\n }\n }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n // Prevent dropdown overflow if there's no padding\n // See https://github.com/twbs/bootstrap/pull/27703\n @if $dropdown-padding-y == 0 {\n &:first-child {\n @include border-top-radius($dropdown-inner-border-radius);\n }\n\n &:last-child {\n @include border-bottom-radius($dropdown-inner-border-radius);\n }\n }\n\n @include hover-focus {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n pointer-events: none;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-padding-y $dropdown-item-padding-x;\n margin-bottom: 0; // for use with heading elements\n @include font-size($font-size-sm);\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n","@mixin caret-down {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n margin-left: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @if $direction == down {\n @include caret-down;\n } @else if $direction == up {\n @include caret-up;\n } @else if $direction == right {\n @include caret-right;\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n margin-right: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @include caret-left;\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 1 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n // Prevent double borders when buttons are next to each other\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-left: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropright &::after {\n margin-left: 0;\n }\n\n .dropleft &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > .btn,\n > .btn-group {\n width: 100%;\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-control-plaintext,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n // Add width 1% and flex-basis auto to ensure that button will not wrap out\n // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.\n width: 1%;\n margin-bottom: 0;\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .custom-select:focus,\n > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n }\n\n // Bring the custom file input above the label\n > .custom-file .custom-file-input:focus {\n z-index: 4;\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 3;\n }\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n @include font-size($input-font-size); // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: $input-height-lg;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: $input-height-sm;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n display: block;\n min-height: $font-size-base * $line-height-base;\n padding-left: $custom-control-gutter + $custom-control-indicator-size;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n border-color: $custom-control-indicator-checked-border-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n }\n\n &:focus:not(:checked) ~ .custom-control-label::before {\n border-color: $custom-control-indicator-focus-border-color;\n }\n\n &:not(:disabled):active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n border-color: $custom-control-indicator-active-border-color;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n &:disabled {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of pseudo-elements.\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n background-color: $custom-control-indicator-bg;\n border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background: no-repeat 50% / #{$custom-control-indicator-bg-size};\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: $custom-checkbox-indicator-icon-checked;\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n border-color: $custom-checkbox-indicator-indeterminate-border-color;\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-indeterminate;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n &:indeterminate ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: $custom-radio-indicator-icon-checked;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// switches\n//\n// Tweak a few things for switches\n\n.custom-switch {\n padding-left: $custom-switch-width + $custom-control-gutter;\n\n .custom-control-label {\n &::before {\n left: -($custom-switch-width + $custom-control-gutter);\n width: $custom-switch-width;\n pointer-events: all;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n }\n\n &::after {\n top: calc(#{(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2)} + #{$custom-control-indicator-border-width * 2});\n left: calc(#{-($custom-switch-width + $custom-control-gutter)} + #{$custom-control-indicator-border-width * 2});\n width: $custom-switch-indicator-size;\n height: $custom-switch-indicator-size;\n background-color: $custom-control-indicator-border-color;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n @include transition(transform .15s ease-in-out, $custom-forms-transition);\n }\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-color: $custom-control-indicator-bg;\n transform: translateX($custom-switch-width - $custom-control-indicator-size);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n font-family: $custom-select-font-family;\n @include font-size($custom-select-font-size);\n font-weight: $custom-select-font-weight;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-background;\n background-color: $custom-select-bg;\n border: $custom-select-border-width solid $custom-select-border-color;\n @include border-radius($custom-select-border-radius, 0);\n @include box-shadow($custom-select-box-shadow);\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n box-shadow: $custom-select-box-shadow, $custom-select-focus-box-shadow;\n } @else {\n box-shadow: $custom-select-focus-box-shadow;\n }\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n display: none;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y-sm;\n padding-bottom: $custom-select-padding-y-sm;\n padding-left: $custom-select-padding-x-sm;\n @include font-size($custom-select-font-size-sm);\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y-lg;\n padding-bottom: $custom-select-padding-y-lg;\n padding-left: $custom-select-padding-x-lg;\n @include font-size($custom-select-font-size-lg);\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-label {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n }\n\n &:disabled ~ .custom-file-label {\n background-color: $custom-file-disabled-bg;\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n\n ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n font-family: $custom-file-font-family;\n font-weight: $custom-file-font-weight;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: $custom-file-height-inner;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: inherit;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n width: 100%;\n height: calc(#{$custom-range-thumb-height} + #{$custom-range-thumb-focus-box-shadow-width * 2});\n padding: 0; // Need to reset padding\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: none;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n // No box-shadow() mixin for focus accessibility.\n &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent; // Why?\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent;\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: 0; // Edge specific\n margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-ms-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: transparent;\n border-color: transparent;\n border-width: $custom-range-thumb-height / 2;\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-fill-lower {\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &::-ms-fill-upper {\n margin-right: 15px; // arbitrary?\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &:disabled {\n &::-webkit-slider-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-webkit-slider-runnable-track {\n cursor: default;\n }\n\n &::-moz-range-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-moz-range-track {\n cursor: default;\n }\n\n &::-ms-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n }\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n @include transition($custom-forms-transition);\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s or `<ul>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n pointer-events: none;\n cursor: default;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properties so that content nested within behave properly.\n > .container,\n > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n @include font-size($navbar-brand-font-size);\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n @include font-size($navbar-toggler-font-size);\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n > .container,\n > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n > .container,\n > .container-fluid {\n flex-wrap: nowrap;\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-brand-color;\n\n @include hover-focus {\n color: $navbar-light-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-light-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-brand-color;\n\n @include hover-focus {\n color: $navbar-dark-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-dark-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group:first-child {\n .list-group-item:first-child {\n @include border-top-radius($card-border-radius);\n }\n }\n\n > .list-group:last-child {\n .list-group-item:last-child {\n @include border-bottom-radius($card-border-radius);\n }\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n padding: $card-spacer-x;\n color: $card-color;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -$card-spacer-y / 2;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n\n + .list-group {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -$card-spacer-x / 2;\n margin-bottom: -$card-spacer-y;\n margin-left: -$card-spacer-x / 2;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -$card-spacer-x / 2;\n margin-left: -$card-spacer-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n}\n\n.card-img {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-radius($card-inner-border-radius);\n}\n\n// Card image caps\n.card-img-top {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n display: flex;\n flex-direction: column;\n\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n display: flex;\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n display: flex;\n flex-direction: column;\n\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-right-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-left-radius: 0;\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n orphans: 1;\n widows: 1;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n > .card {\n overflow: hidden;\n\n &:not(:first-of-type) {\n .card-header:first-child {\n @include border-radius(0);\n }\n\n &:not(:last-of-type) {\n border-bottom: 0;\n @include border-radius(0);\n }\n }\n\n &:first-of-type:not(:last-of-type) {\n border-bottom: 0;\n @include border-bottom-radius(0);\n }\n\n &:last-of-type {\n @include border-top-radius(0);\n }\n\n .card-header {\n margin-bottom: -$card-border-width;\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding-x;\n\n &::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding-x;\n color: $breadcrumb-divider-color;\n content: $breadcrumb-divider;\n }\n }\n\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 2;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 1;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n @include font-size($badge-font-size);\n font-weight: $badge-font-weight;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n @include transition($badge-transition);\n\n @at-root a#{&} {\n @include hover-focus {\n text-decoration: none;\n }\n }\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n padding-right: $badge-pill-padding-x;\n padding-left: $badge-pill-padding-x;\n @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n .badge-#{$color} {\n @include badge-variant($value);\n }\n}\n","@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n @at-root a#{&} {\n @include hover-focus {\n color: color-yiq($bg);\n background-color: darken($bg, 10%);\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);\n }\n }\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n color: $jumbotron-color;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: $close-font-size + $alert-padding-x * 2;\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","// Disable animation if transitions are disabled\n@if $enable-transitions {\n @keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n @include font-size($progress-font-size);\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n .progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -$list-group-border-width;\n color: $list-group-color;\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius($list-group-border-radius);\n }\n\n &:last-child {\n margin-bottom: 0;\n @include border-bottom-radius($list-group-border-radius);\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n pointer-events: none;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .list-group-horizontal#{$infix} {\n flex-direction: row;\n\n .list-group-item {\n margin-right: -$list-group-border-width;\n margin-bottom: 0;\n\n &:first-child {\n @include border-left-radius($list-group-border-radius);\n @include border-top-right-radius(0);\n }\n\n &:last-child {\n margin-right: 0;\n @include border-right-radius($list-group-border-radius);\n @include border-bottom-left-radius(0);\n }\n }\n }\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n .list-group-item {\n border-right: 0;\n border-left: 0;\n @include border-radius(0);\n\n &:last-child {\n margin-bottom: -$list-group-border-width;\n }\n }\n\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n\n &:last-child {\n .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n @include font-size($close-font-size);\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n // Override <a>'s hover style\n @include hover {\n color: $close-color;\n text-decoration: none;\n }\n\n &:not(:disabled):not(.disabled) {\n @include hover-focus {\n opacity: .75;\n }\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n pointer-events: none;\n}\n",".toast {\n max-width: $toast-max-width;\n overflow: hidden; // cheap rounded corners on nested items\n @include font-size($toast-font-size);\n color: $toast-color;\n background-color: $toast-background-color;\n background-clip: padding-box;\n border: $toast-border-width solid $toast-border-color;\n box-shadow: $toast-box-shadow;\n backdrop-filter: blur(10px);\n opacity: 0;\n @include border-radius($toast-border-radius);\n\n &:not(:last-child) {\n margin-bottom: $toast-padding-x;\n }\n\n &.showing {\n opacity: 1;\n }\n\n &.show {\n display: block;\n opacity: 1;\n }\n\n &.hide {\n display: none;\n }\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: $toast-padding-y $toast-padding-x;\n color: $toast-header-color;\n background-color: $toast-header-background-color;\n background-clip: padding-box;\n border-bottom: $toast-border-width solid $toast-header-border-color;\n}\n\n.toast-body {\n padding: $toast-padding-x; // apply to both vertical and horizontal\n}\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n // Kill the scroll on the body\n overflow: hidden;\n\n .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: $modal-fade-transform;\n }\n .modal.show & {\n transform: $modal-show-transform;\n }\n}\n\n.modal-dialog-scrollable {\n display: flex; // IE10/11\n max-height: calc(100% - #{$modal-dialog-margin * 2});\n\n .modal-content {\n max-height: calc(100vh - #{$modal-dialog-margin * 2}); // IE10/11\n overflow: hidden;\n }\n\n .modal-header,\n .modal-footer {\n flex-shrink: 0;\n }\n\n .modal-body {\n overflow-y: auto;\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - #{$modal-dialog-margin * 2});\n\n // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\n &::before {\n display: block; // IE10\n height: calc(100vh - #{$modal-dialog-margin * 2});\n content: \"\";\n }\n\n // Ensure `.modal-body` shows scrollbar (IE10/11)\n &.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n\n .modal-content {\n max-height: none;\n }\n\n &::before {\n content: none;\n }\n }\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n color: $modal-content-color;\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n width: 100vw;\n height: 100vh;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-border-radius);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when should there be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n @include border-bottom-radius($modal-content-border-radius);\n\n // Easily place margin between footer elements\n > :not(:first-child) { margin-left: .25rem; }\n > :not(:last-child) { margin-right: .25rem; }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-scrollable {\n max-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});\n\n .modal-content {\n max-height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});\n }\n }\n\n .modal-dialog-centered {\n min-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});\n\n &::before {\n height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});\n }\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg,\n .modal-xl {\n max-width: $modal-lg;\n }\n}\n\n@include media-breakpoint-up(xl) {\n .modal-xl { max-width: $modal-xl; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .tooltip-arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .tooltip-arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .tooltip-arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .tooltip-arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .tooltip-arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .popover-arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $border-radius-lg;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n > .popover-arrow {\n bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n\n &::before {\n bottom: 0;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n &::after {\n bottom: $popover-border-width;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n > .popover-arrow {\n left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n left: 0;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n &::after {\n left: $popover-border-width;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n > .popover-arrow {\n top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n\n &::before {\n top: 0;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n &::after {\n top: $popover-border-width;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-color;\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: -$popover-arrow-width / 2;\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n > .popover-arrow {\n right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n right: 0;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-outer-color;\n }\n\n &::after {\n right: $popover-border-width;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n @include font-size($font-size-base);\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});\n @include border-top-radius($offset-border-width);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n @include clearfix();\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-left,\n .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n @include transition(0s $carousel-transition-duration opacity);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n @include transition($carousel-control-transition);\n\n // Hover/focus state\n @include hover-focus {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: $carousel-control-hover-opacity;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: no-repeat 50% / 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: $carousel-control-prev-icon-bg;\n}\n.carousel-control-next-icon {\n background-image: $carousel-control-next-icon-bg;\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n cursor: pointer;\n background-color: $carousel-indicator-active-bg;\n background-clip: padding-box;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-top: $carousel-indicator-hit-area-height solid transparent;\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\n opacity: .5;\n @include transition($carousel-indicator-transition);\n }\n\n .active {\n opacity: 1;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: (100% - $carousel-caption-width) / 2;\n bottom: 20px;\n left: (100% - $carousel-caption-width) / 2;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","//\n// Rotating border\n//\n\n@keyframes spinner-border {\n to { transform: rotate(360deg); }\n}\n\n.spinner-border {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n border: $spinner-border-width solid currentColor;\n border-right-color: transparent;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n background-color: currentColor;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus {\n background-color: darken($color, 10%) !important;\n }\n }\n}\n\n@mixin bg-gradient-variant($parent, $color) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n @include bg-variant(\".bg-#{$color}\", $value);\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable property-blacklist, declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded-sm {\n border-radius: $border-radius-sm !important;\n}\n\n.rounded {\n border-radius: $border-radius !important;\n}\n\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-lg {\n border-radius: $border-radius-lg !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: $rounded-pill !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\n $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\n $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\n\n .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\n &::before {\n padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { float: left !important; }\n .float#{$infix}-right { float: right !important; }\n .float#{$infix}-none { float: none !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $overflows {\n .overflow-#{$value} { overflow: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n\n// Viewport additional helpers\n\n.min-vw-100 { min-width: 100vw !important; }\n.min-vh-100 { min-height: 100vh !important; }\n\n.vw-100 { width: 100vw !important; }\n.vh-100 { height: 100vh !important; }\n","//\n// Stretched link\n//\n\n.stretched-link {\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n // Just in case `pointer-events: none` is set on a parent\n pointer-events: auto;\n content: \"\";\n // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\n background-color: rgba(0, 0, 0, 0);\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace !important; }\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-wrap { white-space: normal !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate; }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-weight-bolder { font-weight: $font-weight-bolder !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n @include text-hide($ignore-warning: true);\n}\n\n.text-decoration-none { text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important; // IE & < Edge 18\n overflow-wrap: break-word !important;\n}\n\n// Reset\n\n.text-reset { color: inherit !important; }\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color) {\n #{$parent} {\n color: $color !important;\n }\n @if $emphasized-link-hover-darken-percentage != 0 {\n a#{$parent} {\n @include hover-focus {\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n }\n }\n }\n}\n","// CSS image replacement\n@mixin text-hide($ignore-warning: false) {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n\n @include deprecate(\"`text-hide()`\", \"v4.1.0\", \"v5\", $ignore-warning);\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Visibility utilities\n//\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: $black !important; // Black prints faster\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid $black;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: $white !important;\n }\n }\n\n .table-bordered {\n th,\n td {\n border: 1px solid $gray-300 !important;\n }\n }\n\n .table-dark {\n color: inherit;\n\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $table-border-color;\n }\n }\n\n .table .thead-dark th {\n color: inherit;\n border-color: $table-border-color;\n }\n\n // Bootstrap specific changes end\n }\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"AAAA;;;;;ACAA,MAGI,OAAA,QAAA,SAAA,QAAA,SAAA,QAAA,OAAA,QAAA,MAAA,QAAA,SAAA,QAAA,SAAA,QAAA,QAAA,QAAA,OAAA,QAAA,OAAA,QAAA,QAAA,KAAA,OAAA,QAAA,YAAA,QAIA,UAAA,QAAA,YAAA,QAAA,UAAA,QAAA,OAAA,QAAA,UAAA,QAAA,SAAA,QAAA,QAAA,QAAA,OAAA,QAIA,gBAAA,EAAA,gBAAA,MAAA,gBAAA,MAAA,gBAAA,MAAA,gBAAA,OAKF,yBAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBACA,wBAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UCCF,ECqBA,QADA,SDjBE,WAAA,WAGF,KACE,YAAA,WACA,YAAA,KACA,yBAAA,KACA,4BAAA,YAMF,QAAA,MAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,IAAA,QACE,QAAA,MAUF,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBE2FI,UAAA,KFzFJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,KACA,iBAAA,KGYF,0CHCE,QAAA,YASF,GACE,WAAA,YACA,OAAA,EACA,SAAA,QAaF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KChBF,0BD2BA,YAEE,gBAAA,UACA,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EACA,iCAAA,KAAA,yBAAA,KAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QCrBF,GDwBA,GCzBA,GD4BE,WAAA,EACA,cAAA,KAGF,MCxBA,MACA,MAFA,MD6BE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,ECzBA,OD2BE,YAAA,OAGF,MEtCI,UAAA,IF+CJ,IC9BA,IDgCE,SAAA,SEjDE,UAAA,IFmDF,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YIhLA,QJmLE,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KI5LA,oCAAA,oCJ+LE,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EChCJ,KACA,IDwCA,ICvCA,KD2CE,YAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,UEvGE,UAAA,IF2GJ,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,IAGE,SAAA,OACA,eAAA,OAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAGE,WAAA,QAQF,MAEE,QAAA,aACA,cAAA,MAMF,OAEE,cAAA,EAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC3EF,OD8EA,MC5EA,SADA,OAEA,SDgFE,OAAA,EACA,YAAA,QExME,UAAA,QF0MF,YAAA,QAGF,OC9EA,MDgFE,SAAA,QAGF,OC9EA,ODgFE,eAAA,KAMF,OACE,UAAA,OC9EF,cACA,aACA,cDmFA,OAIE,mBAAA,OClFF,6BACA,4BACA,6BDqFE,sBAKI,OAAA,QCrFN,gCACA,+BACA,gCDyFA,yBAIE,QAAA,EACA,aAAA,KCxFF,qBD2FA,kBAEE,WAAA,WACA,QAAA,EAIF,iBC3FA,2BACA,kBAFA,iBDqGE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,ME3RI,UAAA,OF6RJ,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SG1GF,yCFGA,yCD6GE,OAAA,KG3GF,cHmHE,eAAA,KACA,mBAAA,KG/GF,yCHuHE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UACA,OAAA,QAGF,SACE,QAAA,KG5HF,SHkIE,QAAA,eC3HF,IAAK,IAAK,IAAK,IAAK,IAAK,IIpWzB,GAAA,GAAA,GAAA,GAAA,GAAA,GAEE,cAAA,MAEA,YAAA,IACA,YAAA,IAIF,IAAA,GH2HM,UAAA,OG1HN,IAAA,GH0HM,UAAA,KGzHN,IAAA,GHyHM,UAAA,QGxHN,IAAA,GHwHM,UAAA,OGvHN,IAAA,GHuHM,UAAA,QGtHN,IAAA,GHsHM,UAAA,KGpHN,MHoHM,UAAA,QGlHJ,YAAA,IAIF,WH8GM,UAAA,KG5GJ,YAAA,IACA,YAAA,IAEF,WHyGM,UAAA,OGvGJ,YAAA,IACA,YAAA,IAEF,WHoGM,UAAA,OGlGJ,YAAA,IACA,YAAA,IAEF,WH+FM,UAAA,OG7FJ,YAAA,IACA,YAAA,IL6BF,GKpBE,WAAA,KACA,cAAA,KACA,OAAA,EACA,WAAA,IAAA,MAAA,eJmXF,OI3WA,MHwDI,UAAA,IGrDF,YAAA,IJ8WF,MI3WA,KAEE,QAAA,KACA,iBAAA,QAQF,eC/EE,aAAA,EACA,WAAA,KDmFF,aCpFE,aAAA,EACA,WAAA,KDsFF,kBACE,QAAA,aADF,mCAII,aAAA,MAUJ,YHiBI,UAAA,IGfF,eAAA,UAIF,YACE,cAAA,KH0BI,UAAA,QGtBN,mBACE,QAAA,MHKE,UAAA,IGHF,MAAA,QAHF,2BAMI,QAAA,aEnHJ,WCIE,UAAA,KAGA,OAAA,KDDF,eACE,QAAA,OACA,iBAAA,KACA,OAAA,IAAA,MAAA,QEXE,cAAA,ODMF,UAAA,KAGA,OAAA,KDcF,QAEE,QAAA,aAGF,YACE,cAAA,MACA,YAAA,EAGF,gBLoFI,UAAA,IKlFF,MAAA,QGvCF,KRyHI,UAAA,MQvHF,MAAA,QACA,WAAA,WAGA,OACE,MAAA,QAKJ,IACE,QAAA,MAAA,MR4GE,UAAA,MQ1GF,MAAA,KACA,iBAAA,QDZE,cAAA,MCQJ,QASI,QAAA,ERoGA,UAAA,KQlGA,YAAA,IV6MJ,IUtME,QAAA,MR2FE,UAAA,MQzFF,MAAA,QAHF,SR4FI,UAAA,QQpFA,MAAA,QACA,WAAA,OAKJ,gBACE,WAAA,MACA,WAAA,OCzCA,WCAA,MAAA,KACA,cAAA,KACA,aAAA,KACA,aAAA,KACA,YAAA,KCmDE,yBFvDF,WCYI,UAAA,OC2CF,yBFvDF,WCYI,UAAA,OC2CF,yBFvDF,WCYI,UAAA,OC2CF,0BFvDF,WCYI,UAAA,QDAJ,iBCZA,MAAA,KACA,cAAA,KACA,aAAA,KACA,aAAA,KACA,YAAA,KDkBA,KCJA,QAAA,KACA,UAAA,KACA,aAAA,MACA,YAAA,MDOA,YACE,aAAA,EACA,YAAA,EAFF,iBVujBF,0BUjjBM,cAAA,EACA,aAAA,EGjCJ,KAAA,OAAA,QAAA,QAAA,QAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,ObulBF,UAEqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aAFqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aAFkJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,aAEqJ,QAAvI,UAAmG,WAAY,WAAY,WAAhH,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACtG,aa1lBI,SAAA,SACA,MAAA,KACA,cAAA,KACA,aAAA,KAmBE,KACE,WAAA,EACA,UAAA,EACA,UAAA,KAEF,UACE,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KAIA,OFFN,KAAA,EAAA,EAAA,UAIA,UAAA,UEFM,OFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,OFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,OFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,OFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,OFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,OFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,OFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,OFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,QFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,QFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,QFFN,KAAA,EAAA,EAAA,KAIA,UAAA,KEGI,aAAwB,MAAA,GAExB,YAAuB,MAAA,GAGrB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,SAAwB,MAAA,EAAxB,UAAwB,MAAA,GAAxB,UAAwB,MAAA,GAAxB,UAAwB,MAAA,GAMtB,UFTR,YAAA,UESQ,UFTR,YAAA,WESQ,UFTR,YAAA,IESQ,UFTR,YAAA,WESQ,UFTR,YAAA,WESQ,UFTR,YAAA,IESQ,UFTR,YAAA,WESQ,UFTR,YAAA,WESQ,UFTR,YAAA,IESQ,WFTR,YAAA,WESQ,WFTR,YAAA,WCWE,yBC9BE,QACE,WAAA,EACA,UAAA,EACA,UAAA,KAEF,aACE,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KAIA,UFFN,KAAA,EAAA,EAAA,UAIA,UAAA,UEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,KAIA,UAAA,KEGI,gBAAwB,MAAA,GAExB,eAAuB,MAAA,GAGrB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAMtB,aFTR,YAAA,EESQ,aFTR,YAAA,UESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,cFTR,YAAA,WESQ,cFTR,YAAA,YCWE,yBC9BE,QACE,WAAA,EACA,UAAA,EACA,UAAA,KAEF,aACE,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KAIA,UFFN,KAAA,EAAA,EAAA,UAIA,UAAA,UEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,KAIA,UAAA,KEGI,gBAAwB,MAAA,GAExB,eAAuB,MAAA,GAGrB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAMtB,aFTR,YAAA,EESQ,aFTR,YAAA,UESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,cFTR,YAAA,WESQ,cFTR,YAAA,YCWE,yBC9BE,QACE,WAAA,EACA,UAAA,EACA,UAAA,KAEF,aACE,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KAIA,UFFN,KAAA,EAAA,EAAA,UAIA,UAAA,UEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,KAIA,UAAA,KEGI,gBAAwB,MAAA,GAExB,eAAuB,MAAA,GAGrB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAMtB,aFTR,YAAA,EESQ,aFTR,YAAA,UESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,cFTR,YAAA,WESQ,cFTR,YAAA,YCWE,0BC9BE,QACE,WAAA,EACA,UAAA,EACA,UAAA,KAEF,aACE,KAAA,EAAA,EAAA,KACA,MAAA,KACA,UAAA,KAIA,UFFN,KAAA,EAAA,EAAA,UAIA,UAAA,UEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,UFFN,KAAA,EAAA,EAAA,IAIA,UAAA,IEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,WAIA,UAAA,WEFM,WFFN,KAAA,EAAA,EAAA,KAIA,UAAA,KEGI,gBAAwB,MAAA,GAExB,eAAuB,MAAA,GAGrB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,YAAwB,MAAA,EAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAAxB,aAAwB,MAAA,GAMtB,aFTR,YAAA,EESQ,aFTR,YAAA,UESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,aFTR,YAAA,WESQ,aFTR,YAAA,WESQ,aFTR,YAAA,IESQ,cFTR,YAAA,WESQ,cFTR,YAAA,YG7CF,OACE,MAAA,KACA,cAAA,KACA,MAAA,Qdi1CF,Ucp1CA,UAQI,QAAA,OACA,eAAA,IACA,WAAA,IAAA,MAAA,QAVJ,gBAcI,eAAA,OACA,cAAA,IAAA,MAAA,QAfJ,mBAmBI,WAAA,IAAA,MAAA,Qdi1CJ,acx0CA,aAGI,QAAA,MASJ,gBACE,OAAA,IAAA,MAAA,Qdo0CF,mBcr0CA,mBAKI,OAAA,IAAA,MAAA,Qdq0CJ,yBc10CA,yBAWM,oBAAA,Ids0CN,8BAFA,qBc/zCA,qBdg0CA,2Bc3zCI,OAAA,EAQJ,yCAEI,iBAAA,gBX/DF,4BW2EI,MAAA,QACA,iBAAA,iBCnFJ,efu4CF,kBADA,kBel4CM,iBAAA,Qf04CN,2BAFA,kBe54CE,kBf64CF,wBej4CQ,aAAA,QZLN,kCYiBM,iBAAA,QALN,qCfo4CF,qCe33CU,iBAAA,QA5BR,iBf65CF,oBADA,oBex5CM,iBAAA,Qfg6CN,6BAFA,oBel6CE,oBfm6CF,0Bev5CQ,aAAA,QZLN,oCYiBM,iBAAA,QALN,uCf05CF,uCej5CU,iBAAA,QA5BR,efm7CF,kBADA,kBe96CM,iBAAA,Qfs7CN,2BAFA,kBex7CE,kBfy7CF,wBe76CQ,aAAA,QZLN,kCYiBM,iBAAA,QALN,qCfg7CF,qCev6CU,iBAAA,QA5BR,Yfy8CF,eADA,eep8CM,iBAAA,Qf48CN,wBAFA,ee98CE,ef+8CF,qBen8CQ,aAAA,QZLN,+BYiBM,iBAAA,QALN,kCfs8CF,kCe77CU,iBAAA,QA5BR,ef+9CF,kBADA,kBe19CM,iBAAA,Qfk+CN,2BAFA,kBep+CE,kBfq+CF,wBez9CQ,aAAA,QZLN,kCYiBM,iBAAA,QALN,qCf49CF,qCen9CU,iBAAA,QA5BR,cfq/CF,iBADA,iBeh/CM,iBAAA,Qfw/CN,0BAFA,iBe1/CE,iBf2/CF,uBe/+CQ,aAAA,QZLN,iCYiBM,iBAAA,QALN,oCfk/CF,oCez+CU,iBAAA,QA5BR,af2gDF,gBADA,gBetgDM,iBAAA,Qf8gDN,yBAFA,gBehhDE,gBfihDF,sBergDQ,aAAA,QZLN,gCYiBM,iBAAA,QALN,mCfwgDF,mCe//CU,iBAAA,QA5BR,YfiiDF,eADA,ee5hDM,iBAAA,QfoiDN,wBAFA,eetiDE,efuiDF,qBe3hDQ,aAAA,QZLN,+BYiBM,iBAAA,QALN,kCf8hDF,kCerhDU,iBAAA,QA5BR,cfujDF,iBADA,iBeljDM,iBAAA,iBZGJ,iCYiBM,iBAAA,iBALN,oCf6iDF,oCepiDU,iBAAA,iBD8EV,sBAGM,MAAA,KACA,iBAAA,QACA,aAAA,QALN,uBAWM,MAAA,QACA,iBAAA,QACA,aAAA,QAKN,YACE,MAAA,KACA,iBAAA,Qdw9CF,ec19CA,ed29CA,qBcp9CI,aAAA,QAPJ,2BAWI,OAAA,EAXJ,oDAgBM,iBAAA,sBXrIJ,uCW4IM,MAAA,KACA,iBAAA,uBFhFJ,4BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GF1GN,4BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GF1GN,4BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GF1GN,6BEiGA,qBAEI,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MALH,qCASK,OAAA,GAdV,kBAOQ,QAAA,MACA,MAAA,KACA,WAAA,KACA,2BAAA,MAVR,kCAcU,OAAA,EE7KV,cACE,QAAA,MACA,MAAA,KACA,OAAA,2BACA,QAAA,QAAA,OfgII,UAAA,Ke7HJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,QRbE,cAAA,OSCE,WAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCDLJ,cCMM,WAAA,MDNN,0BAsBI,iBAAA,YACA,OAAA,EEhBF,oBACE,MAAA,QACA,iBAAA,KACA,aAAA,QACA,QAAA,EAKE,WAAA,EAAA,EAAA,EAAA,MAAA,oBFhBN,yCA+BI,MAAA,QAEA,QAAA,EAjCJ,gCA+BI,MAAA,QAEA,QAAA,EAjCJ,oCA+BI,MAAA,QAEA,QAAA,EAjCJ,qCA+BI,MAAA,QAEA,QAAA,EAjCJ,2BA+BI,MAAA,QAEA,QAAA,EAjCJ,uBAAA,wBA2CI,iBAAA,QAEA,QAAA,EAIJ,qCAOI,MAAA,QACA,iBAAA,KAKJ,mBhB2qDA,oBgBzqDE,QAAA,MACA,MAAA,KAUF,gBACE,YAAA,oBACA,eAAA,oBACA,cAAA,EfsCE,UAAA,QepCF,YAAA,IAGF,mBACE,YAAA,kBACA,eAAA,kBf+CI,UAAA,Qe7CJ,YAAA,IAGF,mBACE,YAAA,mBACA,eAAA,mBfwCI,UAAA,QetCJ,YAAA,IASF,wBACE,QAAA,MACA,MAAA,KACA,YAAA,QACA,eAAA,QACA,cAAA,EACA,YAAA,IACA,MAAA,QACA,iBAAA,YACA,OAAA,MAAA,YACA,aAAA,IAAA,EAVF,wCAAA,wCAcI,cAAA,EACA,aAAA,EAYJ,iBACE,OAAA,0BACA,QAAA,OAAA,MfAI,UAAA,QeEJ,YAAA,IRvIE,cAAA,MQ2IJ,iBACE,OAAA,yBACA,QAAA,MAAA,KfRI,UAAA,QeUJ,YAAA,IR/IE,cAAA,MQoJJ,8BAAA,0BAGI,OAAA,KAIJ,sBACE,OAAA,KAQF,YACE,cAAA,KAGF,WACE,QAAA,MACA,WAAA,OAQF,UACE,QAAA,KACA,UAAA,KACA,aAAA,KACA,YAAA,KAJF,ehB8oDA,wBgBtoDI,cAAA,IACA,aAAA,IASJ,YACE,SAAA,SACA,QAAA,MACA,aAAA,QAGF,kBACE,SAAA,SACA,WAAA,MACA,YAAA,SAHF,8CAQI,MAAA,QAIJ,kBACE,cAAA,EAGF,mBACE,QAAA,YACA,YAAA,OACA,aAAA,EACA,aAAA,OAJF,qCAQI,SAAA,OACA,WAAA,EACA,aAAA,SACA,YAAA,EE5MF,gBACE,QAAA,KACA,MAAA,KACA,WAAA,OjByFA,UAAA,IiBvFA,MAAA,QAGF,eACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MjB6FE,UAAA,QiB3FF,YAAA,IACA,MAAA,KACA,iBAAA,mBV5CA,cAAA,OUiDA,uBAAA,mCAEE,aAAA,QAGE,cAAA,qBACA,iBAAA,2OACA,kBAAA,UACA,oBAAA,OAAA,MAAA,wBACA,gBAAA,sBAAA,sBATJ,6BAAA,yCAaI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBlB80D6C,uCACrD,sCkB71DI,mDlB41DJ,kDkBz0DQ,QAAA,MAOJ,2CAAA,+BAGI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBAMJ,wBAAA,oCAEE,aAAA,QAGE,cAAA,uCACA,WAAA,0JAAA,UAAA,MAAA,OAAA,MAAA,CAAA,IAAA,IAAA,CAAA,2OAAA,KAAA,UAAA,OAAA,MAAA,OAAA,CAAA,sBAAA,sBANJ,8BAAA,0CAUI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBlBm0D8C,wCACtD,uCkB/0DI,oDlB80DJ,mDkB9zDQ,QAAA,MlBo0DkD,4CAC1D,2CkB9zDI,wDlB6zDJ,uDkBzzDQ,QAAA,MAMJ,6CAAA,yDAGI,MAAA,QlB0zDiD,2CACzD,0CkB9zDI,uDlB6zDJ,sDkBrzDQ,QAAA,MAMJ,qDAAA,iEAGI,MAAA,QAHJ,6DAAA,yEAMM,aAAA,QlBuzDmD,+CAC7D,8CkB9zDI,2DlB6zDJ,0DkBjzDQ,QAAA,MAZJ,qEAAA,iFAiBM,aAAA,QCpJN,iBAAA,QDmIA,mEAAA,+EAwBM,WAAA,EAAA,EAAA,EAAA,MAAA,oBAxBN,iFAAA,6FA4BM,aAAA,QAQN,+CAAA,2DAGI,aAAA,QlB6yDkD,4CAC1D,2CkBjzDI,wDlBgzDJ,uDkBxyDQ,QAAA,MARJ,qDAAA,iEAaM,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBA7JR,kBACE,QAAA,KACA,MAAA,KACA,WAAA,OjByFA,UAAA,IiBvFA,MAAA,QAGF,iBACE,SAAA,SACA,IAAA,KACA,QAAA,EACA,QAAA,KACA,UAAA,KACA,QAAA,OAAA,MACA,WAAA,MjB6FE,UAAA,QiB3FF,YAAA,IACA,MAAA,KACA,iBAAA,mBV5CA,cAAA,OUiDA,yBAAA,qCAEE,aAAA,QAGE,cAAA,qBACA,iBAAA,qRACA,kBAAA,UACA,oBAAA,OAAA,MAAA,wBACA,gBAAA,sBAAA,sBATJ,+BAAA,2CAaI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBlBy8DiD,2CACzD,0CkBx9DI,uDlBu9DJ,sDkBp8DQ,QAAA,MAOJ,6CAAA,iCAGI,cAAA,qBACA,oBAAA,IAAA,wBAAA,MAAA,wBAMJ,0BAAA,sCAEE,aAAA,QAGE,cAAA,uCACA,WAAA,0JAAA,UAAA,MAAA,OAAA,MAAA,CAAA,IAAA,IAAA,CAAA,qRAAA,KAAA,UAAA,OAAA,MAAA,OAAA,CAAA,sBAAA,sBANJ,gCAAA,4CAUI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBlB87DkD,4CAC1D,2CkB18DI,wDlBy8DJ,uDkBz7DQ,QAAA,MlB+7DsD,gDAC9D,+CkBz7DI,4DlBw7DJ,2DkBp7DQ,QAAA,MAMJ,+CAAA,2DAGI,MAAA,QlBq7DqD,+CAC7D,8CkBz7DI,2DlBw7DJ,0DkBh7DQ,QAAA,MAMJ,uDAAA,mEAGI,MAAA,QAHJ,+DAAA,2EAMM,aAAA,QlBk7DuD,mDACjE,kDkBz7DI,+DlBw7DJ,8DkB56DQ,QAAA,MAZJ,uEAAA,mFAiBM,aAAA,QCpJN,iBAAA,QDmIA,qEAAA,iFAwBM,WAAA,EAAA,EAAA,EAAA,MAAA,oBAxBN,mFAAA,+FA4BM,aAAA,QAQN,iDAAA,6DAGI,aAAA,QlBw6DsD,gDAC9D,+CkB56DI,4DlB26DJ,2DkBn6DQ,QAAA,MARJ,uDAAA,mEAaM,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBFwEV,aACE,QAAA,KACA,UAAA,IAAA,KACA,YAAA,OAHF,yBASI,MAAA,KJhNA,yBIuMJ,mBAeM,QAAA,KACA,YAAA,OACA,gBAAA,OACA,cAAA,EAlBN,yBAuBM,QAAA,KACA,KAAA,EAAA,EAAA,KACA,UAAA,IAAA,KACA,YAAA,OACA,cAAA,EA3BN,2BAgCM,QAAA,aACA,MAAA,KACA,eAAA,OAlCN,qCAuCM,QAAA,ahBy1DJ,4BgBh4DF,0BA4CM,MAAA,KA5CN,yBAkDM,QAAA,KACA,YAAA,OACA,gBAAA,OACA,MAAA,KACA,aAAA,EAtDN,+BAyDM,SAAA,SACA,YAAA,EACA,WAAA,EACA,aAAA,OACA,YAAA,EA7DN,6BAiEM,YAAA,OACA,gBAAA,OAlEN,mCAqEM,cAAA,GIlUN,KACE,QAAA,aAEA,YAAA,IACA,MAAA,QACA,WAAA,OACA,eAAA,OACA,oBAAA,KAAA,iBAAA,KAAA,gBAAA,KAAA,YAAA,KACA,iBAAA,YACA,OAAA,IAAA,MAAA,YCyFA,QAAA,QAAA,OpBkCI,UAAA,KoBhCJ,YAAA,IbrGE,cAAA,OSCE,WAAA,MAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCGLJ,KHMM,WAAA,MdAJ,WiBQE,MAAA,QACA,gBAAA,KAfJ,WAAA,WAoBI,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBArBJ,cAAA,cA2BI,QAAA,IAeJ,epBqpEA,wBoBnpEE,eAAA,KASA,aCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,mBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,mBAAA,mBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAKJ,sBAAA,sBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,kDAAA,kDrByrEF,mCqBtrEI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,wDAAA,wDrBsrEJ,yCqBjrEQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBDEN,eCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,qBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,qBAAA,qBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,qBAKJ,wBAAA,wBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,oDAAA,oDrB8tEF,qCqB3tEI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,0DAAA,0DrB2tEJ,2CqBttEQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBDEN,aCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,mBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,mBAAA,mBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAKJ,sBAAA,sBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,kDAAA,kDrBmwEF,mCqBhwEI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,wDAAA,wDrBgwEJ,yCqB3vEQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBDEN,UCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,gBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,gBAAA,gBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAKJ,mBAAA,mBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,+CAAA,+CrBwyEF,gCqBryEI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,qDAAA,qDrBqyEJ,sCqBhyEQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBDEN,aCrDA,MAAA,QFAE,iBAAA,QEEF,aAAA,QlBIA,mBkBAE,MAAA,QFNA,iBAAA,QEQA,aAAA,QAGF,mBAAA,mBAEE,MAAA,QFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAKJ,sBAAA,sBAEE,MAAA,QACA,iBAAA,QACA,aAAA,QAOF,kDAAA,kDrB60EF,mCqB10EI,MAAA,QACA,iBAAA,QAIA,aAAA,QAEA,wDAAA,wDrB00EJ,yCqBr0EQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBDEN,YCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,kBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,kBAAA,kBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAKJ,qBAAA,qBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,iDAAA,iDrBk3EF,kCqB/2EI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,uDAAA,uDrB+2EJ,wCqB12EQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBDEN,WCrDA,MAAA,QFAE,iBAAA,QEEF,aAAA,QlBIA,iBkBAE,MAAA,QFNA,iBAAA,QEQA,aAAA,QAGF,iBAAA,iBAEE,MAAA,QFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,qBAKJ,oBAAA,oBAEE,MAAA,QACA,iBAAA,QACA,aAAA,QAOF,gDAAA,gDrBu5EF,iCqBp5EI,MAAA,QACA,iBAAA,QAIA,aAAA,QAEA,sDAAA,sDrBo5EJ,uCqB/4EQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBDEN,UCrDA,MAAA,KFAE,iBAAA,QEEF,aAAA,QlBIA,gBkBAE,MAAA,KFNA,iBAAA,QEQA,aAAA,QAGF,gBAAA,gBAEE,MAAA,KFbA,iBAAA,QEeA,aAAA,QAKE,WAAA,EAAA,EAAA,EAAA,MAAA,kBAKJ,mBAAA,mBAEE,MAAA,KACA,iBAAA,QACA,aAAA,QAOF,+CAAA,+CrB47EF,gCqBz7EI,MAAA,KACA,iBAAA,QAIA,aAAA,QAEA,qDAAA,qDrBy7EJ,sCqBp7EQ,WAAA,EAAA,EAAA,EAAA,MAAA,kBDQN,qBCDA,MAAA,QACA,aAAA,QlBrDA,2BkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,2BAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,8BAAA,8BAEE,MAAA,QACA,iBAAA,YAGF,0DAAA,0DrBk7EF,2CqB/6EI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,gEAAA,gErBk7EJ,iDqB76EQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD/BN,uBCDA,MAAA,QACA,aAAA,QlBrDA,6BkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,6BAAA,6BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,qBAGF,gCAAA,gCAEE,MAAA,QACA,iBAAA,YAGF,4DAAA,4DrBk9EF,6CqB/8EI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,kEAAA,kErBk9EJ,mDqB78EQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBD/BN,qBCDA,MAAA,QACA,aAAA,QlBrDA,2BkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,2BAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,8BAAA,8BAEE,MAAA,QACA,iBAAA,YAGF,0DAAA,0DrBk/EF,2CqB/+EI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,gEAAA,gErBk/EJ,iDqB7+EQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD/BN,kBCDA,MAAA,QACA,aAAA,QlBrDA,wBkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,wBAAA,wBAEE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAGF,2BAAA,2BAEE,MAAA,QACA,iBAAA,YAGF,uDAAA,uDrBkhFF,wCqB/gFI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6DAAA,6DrBkhFJ,8CqB7gFQ,WAAA,EAAA,EAAA,EAAA,MAAA,oBD/BN,qBCDA,MAAA,QACA,aAAA,QlBrDA,2BkBwDE,MAAA,QACA,iBAAA,QACA,aAAA,QAGF,2BAAA,2BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,8BAAA,8BAEE,MAAA,QACA,iBAAA,YAGF,0DAAA,0DrBkjFF,2CqB/iFI,MAAA,QACA,iBAAA,QACA,aAAA,QAEA,gEAAA,gErBkjFJ,iDqB7iFQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD/BN,oBCDA,MAAA,QACA,aAAA,QlBrDA,0BkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,0BAAA,0BAEE,WAAA,EAAA,EAAA,EAAA,MAAA,mBAGF,6BAAA,6BAEE,MAAA,QACA,iBAAA,YAGF,yDAAA,yDrBklFF,0CqB/kFI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,+DAAA,+DrBklFJ,gDqB7kFQ,WAAA,EAAA,EAAA,EAAA,MAAA,mBD/BN,mBCDA,MAAA,QACA,aAAA,QlBrDA,yBkBwDE,MAAA,QACA,iBAAA,QACA,aAAA,QAGF,yBAAA,yBAEE,WAAA,EAAA,EAAA,EAAA,MAAA,qBAGF,4BAAA,4BAEE,MAAA,QACA,iBAAA,YAGF,wDAAA,wDrBknFF,yCqB/mFI,MAAA,QACA,iBAAA,QACA,aAAA,QAEA,8DAAA,8DrBknFJ,+CqB7mFQ,WAAA,EAAA,EAAA,EAAA,MAAA,qBD/BN,kBCDA,MAAA,QACA,aAAA,QlBrDA,wBkBwDE,MAAA,KACA,iBAAA,QACA,aAAA,QAGF,wBAAA,wBAEE,WAAA,EAAA,EAAA,EAAA,MAAA,kBAGF,2BAAA,2BAEE,MAAA,QACA,iBAAA,YAGF,uDAAA,uDrBkpFF,wCqB/oFI,MAAA,KACA,iBAAA,QACA,aAAA,QAEA,6DAAA,6DrBkpFJ,8CqB7oFQ,WAAA,EAAA,EAAA,EAAA,MAAA,kBDpBR,UACE,YAAA,IACA,MAAA,QACA,gBAAA,KjBnEA,gBiBsEE,MAAA,QACA,gBAAA,UAPJ,gBAAA,gBAYI,gBAAA,UACA,WAAA,KAbJ,mBAAA,mBAkBI,MAAA,QACA,eAAA,KAWJ,mBAAA,QCFE,QAAA,MAAA,KpBkCI,UAAA,QoBhCJ,YAAA,IbrGE,cAAA,MYyGJ,mBAAA,QCNE,QAAA,OAAA,MpBkCI,UAAA,QoBhCJ,YAAA,IbrGE,cAAA,MYkHJ,WACE,QAAA,MACA,MAAA,KAFF,sBAMI,WAAA,MpBkqFJ,6BADA,4BoB5pFA,6BAII,MAAA,KEtIJ,MLMM,WAAA,QAAA,KAAA,OAKF,uCKXJ,MLYM,WAAA,MKZN,iBAII,QAAA,EAIJ,qBAEI,QAAA,KAIJ,YACE,SAAA,SACA,OAAA,EACA,SAAA,OLXI,WAAA,OAAA,KAAA,KAKF,uCKGJ,YLFM,WAAA,MjBwzFN,UACA,UAFA,WuBl0FA,QAIE,SAAA,SAGF,iBACE,YAAA,OCoBE,wBACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAhCJ,WAAA,KAAA,MACA,aAAA,KAAA,MAAA,YACA,cAAA,EACA,YAAA,KAAA,MAAA,YAqDE,8BACE,YAAA,ED1CN,eACE,SAAA,SACA,IAAA,KACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,UAAA,MACA,QAAA,MAAA,EACA,OAAA,QAAA,EAAA,EtBiHI,UAAA,KsB/GJ,MAAA,QACA,WAAA,KACA,WAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,gBf3BE,cAAA,OeoCA,oBACE,MAAA,KACA,KAAA,EAGF,qBACE,MAAA,EACA,KAAA,KXYF,yBWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MXYF,yBWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MXYF,yBWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MXYF,0BWnBA,uBACE,MAAA,KACA,KAAA,EAGF,wBACE,MAAA,EACA,KAAA,MAON,uBAEI,IAAA,KACA,OAAA,KACA,WAAA,EACA,cAAA,QC/BA,gCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAzBJ,WAAA,EACA,aAAA,KAAA,MAAA,YACA,cAAA,KAAA,MACA,YAAA,KAAA,MAAA,YA8CE,sCACE,YAAA,EDUN,0BAEI,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,YAAA,QC7CA,mCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAlBJ,WAAA,KAAA,MAAA,YACA,aAAA,EACA,cAAA,KAAA,MAAA,YACA,YAAA,KAAA,MAuCE,yCACE,YAAA,EA7BF,mCDmDE,eAAA,EAKN,yBAEI,IAAA,EACA,MAAA,KACA,KAAA,KACA,WAAA,EACA,aAAA,QC9DA,kCACE,QAAA,aACA,YAAA,OACA,eAAA,OACA,QAAA,GAJF,kCAgBI,QAAA,KAGF,mCACE,QAAA,aACA,aAAA,OACA,eAAA,OACA,QAAA,GA9BN,WAAA,KAAA,MAAA,YACA,aAAA,KAAA,MACA,cAAA,KAAA,MAAA,YAiCE,wCACE,YAAA,EAVA,mCDiDA,eAAA,EAON,oCAAA,kCAAA,mCAAA,iCAKI,MAAA,KACA,OAAA,KAKJ,kBE9GE,OAAA,EACA,OAAA,MAAA,EACA,SAAA,OACA,WAAA,IAAA,MAAA,QFkHF,eACE,QAAA,MACA,MAAA,KACA,QAAA,OAAA,OACA,MAAA,KACA,YAAA,IACA,MAAA,QACA,WAAA,QACA,YAAA,OACA,iBAAA,YACA,OAAA,EpBpHA,qBAAA,qBoBmIE,MAAA,QACA,gBAAA,KJ9IA,iBAAA,QIoHJ,sBAAA,sBAgCI,MAAA,KACA,gBAAA,KJrJA,iBAAA,QIoHJ,wBAAA,wBAuCI,MAAA,QACA,eAAA,KACA,iBAAA,YAQJ,oBACE,QAAA,MAIF,iBACE,QAAA,MACA,QAAA,MAAA,OACA,cAAA,EtBzCI,UAAA,QsB2CJ,MAAA,QACA,YAAA,OAIF,oBACE,QAAA,MACA,QAAA,OAAA,OACA,MAAA,QG1LF,W1BwjGA,oB0BtjGE,SAAA,SACA,QAAA,YACA,eAAA,O1B2jGF,yB0B/jGA,gBAOI,SAAA,SACA,KAAA,EAAA,EAAA,K1B6jGJ,+BG5jGE,sBuBII,QAAA,E1B+jGN,gCADA,gCADA,+B0B1kGA,uBAAA,uBAAA,sBAkBM,QAAA,EAMN,aACE,QAAA,KACA,UAAA,KACA,gBAAA,WAHF,0BAMI,MAAA,K1B6jGJ,wC0BzjGA,kCAII,YAAA,K1B0jGJ,4C0B9jGA,uDlBhBI,wBAAA,EACA,2BAAA,ERmlGJ,6C0BpkGA,kClBFI,uBAAA,EACA,0BAAA,EkBgCJ,uBACE,cAAA,SACA,aAAA,SAFF,8B1BijGA,yCADA,sC0BziGI,YAAA,EAGF,yCACE,aAAA,EAIJ,0CAAA,+BACE,cAAA,QACA,aAAA,QAGF,0CAAA,+BACE,cAAA,OACA,aAAA,OAoBF,oBACE,eAAA,OACA,YAAA,WACA,gBAAA,OAHF,yB1BgiGA,+B0BzhGI,MAAA,K1B8hGJ,iD0BriGA,2CAYI,WAAA,K1B8hGJ,qD0B1iGA,gElBlFI,2BAAA,EACA,0BAAA,ERioGJ,sD0BhjGA,2ClBhGI,uBAAA,EACA,wBAAA,EkBuIJ,uB1B8gGA,kC0B3gGI,cAAA,E1BghGJ,4C0BnhGA,yC1BqhGA,uDADA,oD0B7gGM,SAAA,SACA,KAAA,cACA,eAAA,KCzJN,aACE,SAAA,SACA,QAAA,KACA,UAAA,KACA,YAAA,QACA,MAAA,K3BirGF,0BADA,4B2BrrGA,2B3BorGA,qC2BzqGI,SAAA,SACA,KAAA,EAAA,EAAA,KAGA,MAAA,GACA,cAAA,E3BwrGJ,uCADA,yCADA,wCADA,yCADA,2CADA,0CAJA,wCADA,0C2B9rGA,yC3BksGA,kDADA,oDADA,mD2B3qGM,YAAA,K3ByrGN,sEADA,kC2B7sGA,iCA6BI,QAAA,EA7BJ,mDAkCI,QAAA,E3BqrGJ,6C2BvtGA,4CnBeI,wBAAA,EACA,2BAAA,ER6sGJ,8C2B7tGA,6CnB6BI,uBAAA,EACA,0BAAA,EmB9BJ,0BA8CI,QAAA,KACA,YAAA,OA/CJ,8D3BwuGA,qEQztGI,wBAAA,EACA,2BAAA,EmBhBJ,+DnB6BI,uBAAA,EACA,0BAAA,ERqtGJ,oB2BrrGA,qBAEE,QAAA,K3BwrGF,yB2B1rGA,0BAQI,SAAA,SACA,QAAA,E3BurGJ,+B2BhsGA,gCAYM,QAAA,E3B4rGN,8BACA,2CAEA,2CADA,wD2B1sGA,+B3BqsGA,4CAEA,4CADA,yD2BlrGI,YAAA,KAIJ,qBAAuB,aAAA,KACvB,oBAAsB,YAAA,KAQtB,kBACE,QAAA,KACA,YAAA,OACA,QAAA,QAAA,OACA,cAAA,E1BiCI,UAAA,K0B/BJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,OACA,YAAA,OACA,iBAAA,QACA,OAAA,IAAA,MAAA,QnB5GE,cAAA,ORuyGJ,uC2BvsGA,oCAkBI,WAAA,E3B0rGJ,+B2BhrGA,4CAEE,OAAA,yB3BmrGF,+B2BhrGA,8B3BorGA,yCAFA,sDACA,0CAFA,uD2B3qGE,QAAA,MAAA,K1BFI,UAAA,Q0BIJ,YAAA,InBzIE,cAAA,MR6zGJ,+B2BhrGA,4CAEE,OAAA,0B3BmrGF,+B2BhrGA,8B3BorGA,yCAFA,sDACA,0CAFA,uD2B3qGE,QAAA,OAAA,M1BnBI,UAAA,Q0BqBJ,YAAA,InB1JE,cAAA,MmB8JJ,+B3BgrGA,+B2B9qGE,cAAA,Q3BsrGF,wFACA,+EAHA,uDACA,oE2B1qGA,uC3BwqGA,oDQn0GI,wBAAA,EACA,2BAAA,EmBmKJ,sC3ByqGA,mDAGA,qEACA,kFAHA,yDACA,sEQj0GI,uBAAA,EACA,0BAAA,EoB3BJ,gBACE,SAAA,SACA,QAAA,MACA,WAAA,OACA,aAAA,OAGF,uBACE,QAAA,YACA,aAAA,KAGF,sBACE,SAAA,SACA,QAAA,GACA,QAAA,EAHF,4DAMI,MAAA,KACA,aAAA,QTtBA,iBAAA,QSeJ,0DAiBM,WAAA,EAAA,EAAA,EAAA,MAAA,oBAjBN,wEAsBI,aAAA,QAtBJ,0EA0BI,MAAA,KACA,iBAAA,QACA,aAAA,QA5BJ,sDAoCM,MAAA,QApCN,8DAuCQ,iBAAA,QAUR,sBACE,SAAA,SACA,cAAA,EAEA,eAAA,IAJF,8BAQI,SAAA,SACA,IAAA,OACA,KAAA,QACA,QAAA,MACA,MAAA,KACA,OAAA,KACA,eAAA,KACA,QAAA,GACA,iBAAA,KACA,OAAA,QAAA,MAAA,IAjBJ,6BAuBI,SAAA,SACA,IAAA,OACA,KAAA,QACA,QAAA,MACA,MAAA,KACA,OAAA,KACA,QAAA,GACA,WAAA,UAAA,GAAA,CAAA,IAAA,IASJ,+CpBxGI,cAAA,OoBwGJ,4EAOM,iBAAA,4LAPN,mFAaM,aAAA,QTpHF,iBAAA,QSuGJ,kFAkBM,iBAAA,yIAlBN,sFAwBM,iBAAA,mBAxBN,4FA2BM,iBAAA,mBASN,4CAGI,cAAA,IAHJ,yEAQM,iBAAA,sIARN,mFAcM,iBAAA,mBAUN,eACE,aAAA,QADF,6CAKM,KAAA,SACA,MAAA,QACA,eAAA,IAEA,cAAA,MATN,4CAaM,IAAA,mBACA,KAAA,qBACA,MAAA,iBACA,OAAA,iBACA,iBAAA,QAEA,cAAA,MXtLA,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,WAAA,CAAA,kBAAA,KAAA,YAAA,WAAA,UAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAAA,WAAA,UAAA,KAAA,WAAA,CAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,WAAA,CAAA,kBAAA,KAAA,YAKF,uCW8JJ,4CX7JM,WAAA,MW6JN,0EA0BM,iBAAA,KACA,kBAAA,mBAAA,UAAA,mBA3BN,oFAiCM,iBAAA,mBAYN,eACE,QAAA,aACA,MAAA,KACA,OAAA,2BACA,QAAA,QAAA,QAAA,QAAA,O3BhFI,UAAA,K2BmFJ,YAAA,IACA,YAAA,IACA,MAAA,QACA,eAAA,OACA,WAAA,0JAAA,UAAA,MAAA,OAAA,MAAA,CAAA,IAAA,KACA,iBAAA,KACA,OAAA,IAAA,MAAA,QpB9NE,cAAA,OoBiOF,mBAAA,KAAA,gBAAA,KAAA,WAAA,KAhBF,qBAmBI,aAAA,QACA,QAAA,EAIE,WAAA,EAAA,EAAA,EAAA,MAAA,oBAxBN,gCAiCM,MAAA,QACA,iBAAA,KAlCN,yBAAA,qCAwCI,OAAA,KACA,cAAA,OACA,iBAAA,KA1CJ,wBA8CI,MAAA,QACA,iBAAA,QA/CJ,2BAoDI,QAAA,KAIJ,kBACE,OAAA,0BACA,YAAA,OACA,eAAA,OACA,aAAA,M3BxII,UAAA,Q2B4IN,kBACE,OAAA,yBACA,YAAA,MACA,eAAA,MACA,aAAA,K3BhJI,UAAA,Q2ByJN,aACE,SAAA,SACA,QAAA,aACA,MAAA,KACA,OAAA,2BACA,cAAA,EAGF,mBACE,SAAA,SACA,QAAA,EACA,MAAA,KACA,OAAA,2BACA,OAAA,EACA,QAAA,EANF,4CASI,aAAA,QACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAVJ,gDAgBI,iBAAA,QAhBJ,sDAqBM,QAAA,SArBN,0DA0BI,QAAA,kBAIJ,mBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,EACA,OAAA,2BACA,QAAA,QAAA,OAEA,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KACA,OAAA,IAAA,MAAA,QpBjVE,cAAA,OoBoUJ,0BAkBI,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,QAAA,EACA,QAAA,MACA,OAAA,qBACA,QAAA,QAAA,OACA,YAAA,IACA,MAAA,QACA,QAAA,ST/VA,iBAAA,QSiWA,YAAA,QpBlWA,cAAA,EAAA,OAAA,OAAA,EoB6WJ,cACE,MAAA,KACA,OAAA,mBACA,QAAA,EACA,iBAAA,YACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KALF,oBAQI,QAAA,EARJ,0CAY8B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,oBAZ9B,sCAa8B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,oBAb9B,+BAc8B,WAAA,EAAA,EAAA,EAAA,IAAA,IAAA,CAAA,EAAA,EAAA,EAAA,MAAA,oBAd9B,gCAkBI,OAAA,EAlBJ,oCAsBI,MAAA,KACA,OAAA,KACA,WAAA,QTpYA,iBAAA,QSsYA,OAAA,EpBvYA,cAAA,KSCE,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YW0YF,mBAAA,KAAA,WAAA,KXrYA,uCWuWJ,oCXtWM,WAAA,MWsWN,2CT5WI,iBAAA,QS4WJ,6CAsCI,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YpBxZA,cAAA,KoB6WJ,gCAiDI,MAAA,KACA,OAAA,KT9ZA,iBAAA,QSgaA,OAAA,EpBjaA,cAAA,KSCE,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YWoaF,gBAAA,KAAA,WAAA,KX/ZA,uCWuWJ,gCXtWM,WAAA,MWsWN,uCT5WI,iBAAA,QS4WJ,gCAgEI,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,QACA,aAAA,YpBlbA,cAAA,KoB6WJ,yBA2EI,MAAA,KACA,OAAA,KACA,WAAA,EACA,aAAA,MACA,YAAA,MT3bA,iBAAA,QS6bA,OAAA,EpB9bA,cAAA,KSCE,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YWicF,WAAA,KX5bA,uCWuWJ,yBXtWM,WAAA,MWsWN,gCT5WI,iBAAA,QS4WJ,yBA6FI,MAAA,KACA,OAAA,MACA,MAAA,YACA,OAAA,QACA,iBAAA,YACA,aAAA,YACA,aAAA,MAnGJ,8BAwGI,iBAAA,QpBrdA,cAAA,KoB6WJ,8BA6GI,aAAA,KACA,iBAAA,QpB3dA,cAAA,KoB6WJ,6CAoHM,iBAAA,QApHN,sDAwHM,OAAA,QAxHN,yCA4HM,iBAAA,QA5HN,yCAgIM,OAAA,QAhIN,kCAoIM,iBAAA,QAKN,8B5BsyGA,mBACA,eiB5xHM,WAAA,iBAAA,KAAA,WAAA,CAAA,aAAA,KAAA,WAAA,CAAA,WAAA,KAAA,YAKF,uCWgfJ,8B5B6yGE,mBACA,eiB7xHI,WAAA,MYPN,KACE,QAAA,KACA,UAAA,KACA,aAAA,EACA,cAAA,EACA,WAAA,KAGF,UACE,QAAA,MACA,QAAA,MAAA,K1BCA,gBAAA,gB0BEE,gBAAA,KALJ,mBAUI,MAAA,QACA,eAAA,KACA,OAAA,QAQJ,UACE,cAAA,IAAA,MAAA,QADF,oBAII,cAAA,KAJJ,oBAQI,OAAA,IAAA,MAAA,YrB3BA,uBAAA,OACA,wBAAA,OLCF,0BAAA,0B0B6BI,aAAA,QAAA,QAAA,QAZN,6BAgBM,MAAA,QACA,iBAAA,YACA,aAAA,Y7B2yHN,mC6B7zHA,2BAwBI,MAAA,QACA,iBAAA,KACA,aAAA,QAAA,QAAA,KA1BJ,yBA+BI,WAAA,KrBlDA,uBAAA,EACA,wBAAA,EqB4DJ,qBrBtEI,cAAA,OqBsEJ,4B7BoyHA,2B6B7xHI,MAAA,KACA,iBAAA,QASJ,oBAEI,KAAA,EAAA,EAAA,KACA,WAAA,OAIJ,yBAEI,WAAA,EACA,UAAA,EACA,WAAA,OASJ,uBAEI,QAAA,KAFJ,qBAKI,QAAA,MCpGJ,QACE,SAAA,SACA,QAAA,KACA,UAAA,KACA,YAAA,OACA,gBAAA,cACA,QAAA,MAAA,KANF,mB9Bg4HA,yB8Bp3HI,QAAA,KACA,UAAA,KACA,YAAA,OACA,gBAAA,cASJ,cACE,QAAA,aACA,YAAA,SACA,eAAA,SACA,aAAA,K7B6FI,UAAA,Q6B3FJ,YAAA,QACA,YAAA,O3BhCA,oBAAA,oB2BmCE,gBAAA,KASJ,YACE,QAAA,KACA,eAAA,OACA,aAAA,EACA,cAAA,EACA,WAAA,KALF,sBAQI,cAAA,EACA,aAAA,EATJ,2BAaI,SAAA,OACA,MAAA,KASJ,aACE,QAAA,aACA,YAAA,MACA,eAAA,MAYF,iBACE,WAAA,KACA,UAAA,EAGA,YAAA,OAIF,gBACE,QAAA,OAAA,O7B8BI,UAAA,Q6B5BJ,YAAA,EACA,iBAAA,YACA,OAAA,IAAA,MAAA,YtB3GE,cAAA,OLWF,sBAAA,sB2BoGE,gBAAA,KAMJ,qBACE,QAAA,aACA,MAAA,MACA,OAAA,MACA,eAAA,OACA,QAAA,GACA,WAAA,UAAA,OAAA,OACA,gBAAA,KAAA,KlBxDE,4BkBkEC,6B9Bk1HH,mC8B90HQ,cAAA,EACA,aAAA,GlBpFN,yBkB+EA,kBAUI,UAAA,IAAA,OACA,gBAAA,WAXH,8BAcK,eAAA,IAdL,6CAiBO,SAAA,SAjBP,wCAqBO,cAAA,MACA,aAAA,MAtBP,6B9Bw2HH,mC8B30HQ,UAAA,OA7BL,mCAiCK,QAAA,eAGA,WAAA,KApCL,kCAwCK,QAAA,MlB1GN,4BkBkEC,6B9Bs3HH,mC8Bl3HQ,cAAA,EACA,aAAA,GlBpFN,yBkB+EA,kBAUI,UAAA,IAAA,OACA,gBAAA,WAXH,8BAcK,eAAA,IAdL,6CAiBO,SAAA,SAjBP,wCAqBO,cAAA,MACA,aAAA,MAtBP,6B9B44HH,mC8B/2HQ,UAAA,OA7BL,mCAiCK,QAAA,eAGA,WAAA,KApCL,kCAwCK,QAAA,MlB1GN,4BkBkEC,6B9B05HH,mC8Bt5HQ,cAAA,EACA,aAAA,GlBpFN,yBkB+EA,kBAUI,UAAA,IAAA,OACA,gBAAA,WAXH,8BAcK,eAAA,IAdL,6CAiBO,SAAA,SAjBP,wCAqBO,cAAA,MACA,aAAA,MAtBP,6B9Bg7HH,mC8Bn5HQ,UAAA,OA7BL,mCAiCK,QAAA,eAGA,WAAA,KApCL,kCAwCK,QAAA,MlB1GN,6BkBkEC,6B9B87HH,mC8B17HQ,cAAA,EACA,aAAA,GlBpFN,0BkB+EA,kBAUI,UAAA,IAAA,OACA,gBAAA,WAXH,8BAcK,eAAA,IAdL,6CAiBO,SAAA,SAjBP,wCAqBO,cAAA,MACA,aAAA,MAtBP,6B9Bo9HH,mC8Bv7HQ,UAAA,OA7BL,mCAiCK,QAAA,eAGA,WAAA,KApCL,kCAwCK,QAAA,MA7CV,eAeQ,UAAA,IAAA,OACA,gBAAA,WAhBR,0B9B2+HA,gC8Bl+HU,cAAA,EACA,aAAA,EAVV,2BAmBU,eAAA,IAnBV,0CAsBY,SAAA,SAtBZ,qCA0BY,cAAA,MACA,aAAA,MA3BZ,0B9B8/HA,gC8B59HU,UAAA,OAlCV,gCAsCU,QAAA,eAGA,WAAA,KAzCV,+BA6CU,QAAA,KAaV,4BAEI,MAAA,e3BlLF,kCAAA,kC2BqLI,MAAA,eALN,oCAWM,MAAA,e3B3LJ,0CAAA,0C2B8LM,MAAA,eAdR,6CAkBQ,MAAA,e9Bo9HR,4CAEA,2CADA,yC8Bv+HA,0CA0BM,MAAA,eA1BN,8BA+BI,MAAA,eACA,aAAA,eAhCJ,mCAoCI,iBAAA,uOApCJ,2BAwCI,MAAA,eAxCJ,6BA0CM,MAAA,e3B1NJ,mCAAA,mC2B6NM,MAAA,eAOR,2BAEI,MAAA,K3BtOF,iCAAA,iC2ByOI,MAAA,KALN,mCAWM,MAAA,qB3B/OJ,yCAAA,yC2BkPM,MAAA,sBAdR,4CAkBQ,MAAA,sB9Bg9HR,2CAEA,0CADA,wC8Bn+HA,yCA0BM,MAAA,KA1BN,6BA+BI,MAAA,qBACA,aAAA,qBAhCJ,kCAoCI,iBAAA,6OApCJ,0BAwCI,MAAA,qBAxCJ,4BA0CM,MAAA,K3B9QJ,kCAAA,kC2BiRM,MAAA,KC7RR,MACE,SAAA,SACA,QAAA,KACA,eAAA,OACA,UAAA,EACA,UAAA,WACA,iBAAA,KACA,gBAAA,WACA,OAAA,IAAA,MAAA,iBvBPE,cAAA,OuBDJ,SAYI,aAAA,EACA,YAAA,EAbJ,2DvBUI,uBAAA,OACA,wBAAA,OuBXJ,yDvBwBI,2BAAA,OACA,0BAAA,OuBIJ,WAGE,KAAA,EAAA,EAAA,KACA,QAAA,QAIF,YACE,cAAA,OAGF,eACE,WAAA,SACA,cAAA,EAGF,sBACE,cAAA,E5BvCA,iB4B4CE,gBAAA,KAFJ,sBAMI,YAAA,QAQJ,aACE,QAAA,OAAA,QACA,cAAA,EAEA,iBAAA,gBACA,cAAA,IAAA,MAAA,iBALF,yBvB/DI,cAAA,mBAAA,mBAAA,EAAA,EuB+DJ,sDAaM,WAAA,EAKN,aACE,QAAA,OAAA,QACA,iBAAA,gBACA,WAAA,IAAA,MAAA,iBAHF,wBvBjFI,cAAA,EAAA,EAAA,mBAAA,mBuBgGJ,kBACE,aAAA,SACA,cAAA,QACA,YAAA,SACA,cAAA,EAGF,mBACE,aAAA,SACA,YAAA,SAIF,kBACE,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,QAGF,UACE,MAAA,KvBvHE,cAAA,mBuB4HJ,cACE,MAAA,KvBpHE,uBAAA,mBACA,wBAAA,mBuBuHJ,iBACE,MAAA,KvB3GE,2BAAA,mBACA,0BAAA,mBuBiHJ,WACE,QAAA,KACA,eAAA,OAFF,iBAKI,cAAA,KnBvFA,yBmBkFJ,WASI,UAAA,IAAA,KACA,aAAA,MACA,YAAA,MAXJ,iBAcM,QAAA,KAEA,KAAA,EAAA,EAAA,GACA,eAAA,OACA,aAAA,KACA,cAAA,EACA,YAAA,MAUN,YACE,QAAA,KACA,eAAA,OAFF,kBAOI,cAAA,KnBvHA,yBmBgHJ,YAWI,UAAA,IAAA,KAXJ,kBAgBM,KAAA,EAAA,EAAA,GACA,cAAA,EAjBN,wBAoBQ,YAAA,EACA,YAAA,EArBR,mCvBvJI,wBAAA,EACA,2BAAA,ERk4IF,gD+B5uIF,iDAgCY,wBAAA,E/BgtIV,gD+BhvIF,oDAqCY,2BAAA,EArCZ,oCvBzII,uBAAA,EACA,0BAAA,ERg4IF,iD+BxvIF,kDA+CY,uBAAA,E/B6sIV,iD+B5vIF,qDAoDY,0BAAA,GAaZ,oBAEI,cAAA,OnBnLA,yBmBiLJ,cAMI,qBAAA,EAAA,kBAAA,EAAA,aAAA,EACA,mBAAA,QAAA,gBAAA,QAAA,WAAA,QACA,QAAA,EACA,OAAA,EATJ,oBAYM,QAAA,aACA,MAAA,MAUN,iBAEI,SAAA,OAFJ,8DvB/PI,cAAA,EuB+PJ,wDAUQ,cAAA,EvBzQJ,cAAA,EuB+PJ,kDAgBM,cAAA,EvBxPF,2BAAA,EACA,0BAAA,EuBuOJ,8BvBtPI,uBAAA,EACA,wBAAA,EuBqPJ,8BAyBM,cAAA,KC7RN,YACE,QAAA,KACA,UAAA,KACA,QAAA,OAAA,KACA,cAAA,KACA,WAAA,KACA,iBAAA,QxBDE,cAAA,OwBKJ,kCAGI,aAAA,MAHJ,0CAMM,QAAA,aACA,cAAA,MACA,MAAA,QACA,QAAA,IATN,gDAoBI,gBAAA,UApBJ,gDAwBI,gBAAA,KAxBJ,wBA4BI,MAAA,QCtCJ,YACE,QAAA,K5BGA,aAAA,EACA,WAAA,KGAE,cAAA,OyBCJ,WACE,SAAA,SACA,QAAA,MACA,QAAA,MAAA,OACA,YAAA,KACA,YAAA,KACA,MAAA,QACA,iBAAA,KACA,OAAA,IAAA,MAAA,QARF,iBAWI,QAAA,EACA,MAAA,QACA,gBAAA,KACA,iBAAA,QACA,aAAA,QAfJ,iBAmBI,QAAA,EACA,QAAA,EACA,WAAA,EAAA,EAAA,EAAA,MAAA,oBAIJ,kCAGM,YAAA,EzBCF,uBAAA,OACA,0BAAA,OyBLJ,iCzBVI,wBAAA,OACA,2BAAA,OyBSJ,6BAcI,QAAA,EACA,MAAA,KACA,iBAAA,QACA,aAAA,QAjBJ,+BAqBI,MAAA,QACA,eAAA,KAEA,OAAA,KACA,iBAAA,KACA,aAAA,QCtDF,0BACE,QAAA,OAAA,OjCsIE,UAAA,QiCpIF,YAAA,IAKE,iD1BwBF,uBAAA,MACA,0BAAA,M0BpBE,gD1BKF,wBAAA,MACA,2BAAA,M0BnBF,0BACE,QAAA,OAAA,MjCsIE,UAAA,QiCpIF,YAAA,IAKE,iD1BwBF,uBAAA,MACA,0BAAA,M0BpBE,gD1BKF,wBAAA,MACA,2BAAA,M2BjBJ,OACE,QAAA,aACA,QAAA,MAAA,KlCmHE,UAAA,IkCjHF,YAAA,IACA,YAAA,EACA,MAAA,KACA,WAAA,OACA,YAAA,OACA,eAAA,S3BTE,cAAA,O2BAJ,aAcI,QAAA,KAKJ,YACE,SAAA,SACA,IAAA,KC1BF,WACE,QAAA,KAAA,KACA,cAAA,KAEA,iBAAA,Q5BCE,cAAA,MIuDA,yBwB5DJ,WAQI,QAAA,KAAA,MAIJ,iBACE,cAAA,EACA,aAAA,E5BTE,cAAA,E6BDJ,OACE,SAAA,SACA,QAAA,OAAA,QACA,cAAA,KACA,OAAA,IAAA,MAAA,Y7BHE,cAAA,O6BQJ,eAEE,MAAA,QAIF,YACE,YAAA,IAQF,mBACE,cAAA,KADF,0BAKI,SAAA,SACA,IAAA,EACA,MAAA,EACA,QAAA,OAAA,QACA,MAAA,QAUF,eC9CA,MAAA,QnBKE,iBAAA,QmBHF,aAAA,QAEA,2BACE,MAAA,QDyCF,iBC9CA,MAAA,QnBKE,iBAAA,QmBHF,aAAA,QAEA,6BACE,MAAA,QDyCF,eC9CA,MAAA,QnBKE,iBAAA,QmBHF,aAAA,QAEA,2BACE,MAAA,QDyCF,YC9CA,MAAA,QnBKE,iBAAA,QmBHF,aAAA,QAEA,wBACE,MAAA,QDyCF,eC9CA,MAAA,QnBKE,iBAAA,QmBHF,aAAA,QAEA,2BACE,MAAA,QDyCF,cC9CA,MAAA,QnBKE,iBAAA,QmBHF,aAAA,QAEA,0BACE,MAAA,QDyCF,aC9CA,MAAA,QnBKE,iBAAA,QmBHF,aAAA,QAEA,yBACE,MAAA,QDyCF,YC9CA,MAAA,QnBKE,iBAAA,QmBHF,aAAA,QAEA,wBACE,MAAA,QCJF,wCACE,KAAO,oBAAA,KAAA,EACP,GAAK,oBAAA,EAAA,GAFP,gCACE,KAAO,oBAAA,KAAA,EACP,GAAK,oBAAA,EAAA,GAIT,UACE,QAAA,KACA,OAAA,KACA,SAAA,OtC+HI,UAAA,OsC7HJ,iBAAA,Q/BRE,cAAA,O+BaJ,cACE,QAAA,KACA,eAAA,OACA,gBAAA,OACA,MAAA,KACA,WAAA,OACA,YAAA,OACA,iBAAA,QtBnBI,WAAA,MAAA,IAAA,KAKF,uCsBOJ,ctBNM,WAAA,MsBiBN,sBpBcE,iBAAA,iKoBZA,gBAAA,KAAA,KAIA,uBACE,kBAAA,qBAAA,GAAA,OAAA,SAAA,UAAA,qBAAA,GAAA,OAAA,SAGE,uCAJJ,uBAKM,kBAAA,KAAA,UAAA,MCxCR,OACE,QAAA,KACA,YAAA,WAGF,YACE,KAAA,ECFF,YACE,QAAA,KACA,eAAA,OAGA,aAAA,EACA,cAAA,EASF,wBACE,MAAA,KACA,MAAA,QACA,WAAA,QtCNA,8BAAA,8BsCUE,QAAA,EACA,MAAA,QACA,gBAAA,KACA,iBAAA,QAVJ,+BAcI,MAAA,QACA,iBAAA,QASJ,iBACE,SAAA,SACA,QAAA,MACA,QAAA,OAAA,QAEA,cAAA,KAEA,iBAAA,KACA,OAAA,IAAA,MAAA,iBARF,6BjC7BI,uBAAA,OACA,wBAAA,OiC4BJ,4BAeI,cAAA,EjC9BA,2BAAA,OACA,0BAAA,OiCcJ,0BAAA,0BAqBI,MAAA,QACA,eAAA,KACA,iBAAA,KAvBJ,wBA4BI,QAAA,EACA,MAAA,KACA,iBAAA,QACA,aAAA,QAaA,uBACE,eAAA,IADF,wCAII,aAAA,KACA,cAAA,EALJ,oDjCpDA,uBAAA,OACA,0BAAA,OAYA,wBAAA,EiCuCA,mDAaM,aAAA,EjC/EN,wBAAA,OACA,2BAAA,OAsCA,0BAAA,EIAA,yB6B2BA,0BACE,eAAA,IADF,2CAII,aAAA,KACA,cAAA,EALJ,uDjCpDA,uBAAA,OACA,0BAAA,OAYA,wBAAA,EiCuCA,sDAaM,aAAA,EjC/EN,wBAAA,OACA,2BAAA,OAsCA,0BAAA,GIAA,yB6B2BA,0BACE,eAAA,IADF,2CAII,aAAA,KACA,cAAA,EALJ,uDjCpDA,uBAAA,OACA,0BAAA,OAYA,wBAAA,EiCuCA,sDAaM,aAAA,EjC/EN,wBAAA,OACA,2BAAA,OAsCA,0BAAA,GIAA,yB6B2BA,0BACE,eAAA,IADF,2CAII,aAAA,KACA,cAAA,EALJ,uDjCpDA,uBAAA,OACA,0BAAA,OAYA,wBAAA,EiCuCA,sDAaM,aAAA,EjC/EN,wBAAA,OACA,2BAAA,OAsCA,0BAAA,GIAA,0B6B2BA,0BACE,eAAA,IADF,2CAII,aAAA,KACA,cAAA,EALJ,uDjCpDA,uBAAA,OACA,0BAAA,OAYA,wBAAA,EiCuCA,sDAaM,aAAA,EjC/EN,wBAAA,OACA,2BAAA,OAsCA,0BAAA,GiCuDJ,mCAEI,aAAA,EACA,YAAA,EjCjHA,cAAA,EiC8GJ,8CAOM,cAAA,KAPN,2DAaM,WAAA,EAbN,yDAmBM,cAAA,EACA,cAAA,ECpIJ,yBACE,MAAA,QACA,iBAAA,QvCWF,sDAAA,sDuCPM,MAAA,QACA,iBAAA,QAPN,uDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,2BACE,MAAA,QACA,iBAAA,QvCWF,wDAAA,wDuCPM,MAAA,QACA,iBAAA,QAPN,yDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,yBACE,MAAA,QACA,iBAAA,QvCWF,sDAAA,sDuCPM,MAAA,QACA,iBAAA,QAPN,uDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,sBACE,MAAA,QACA,iBAAA,QvCWF,mDAAA,mDuCPM,MAAA,QACA,iBAAA,QAPN,oDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,yBACE,MAAA,QACA,iBAAA,QvCWF,sDAAA,sDuCPM,MAAA,QACA,iBAAA,QAPN,uDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,wBACE,MAAA,QACA,iBAAA,QvCWF,qDAAA,qDuCPM,MAAA,QACA,iBAAA,QAPN,sDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,uBACE,MAAA,QACA,iBAAA,QvCWF,oDAAA,oDuCPM,MAAA,QACA,iBAAA,QAPN,qDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QAbN,sBACE,MAAA,QACA,iBAAA,QvCWF,mDAAA,mDuCPM,MAAA,QACA,iBAAA,QAPN,oDAWM,MAAA,KACA,iBAAA,QACA,aAAA,QChBR,OACE,MAAA,M1CyII,UAAA,O0CvIJ,YAAA,IACA,YAAA,EACA,MAAA,KACA,YAAA,EAAA,IAAA,EAAA,KACA,QAAA,GxCKA,awCDE,MAAA,KACA,gBAAA,KxCIF,2CAAA,2CwCCI,QAAA,IAWN,aACE,QAAA,EACA,iBAAA,YACA,OAAA,EACA,mBAAA,KAAA,gBAAA,KAAA,WAAA,KAMF,iBACE,eAAA,KCvCF,OACE,UAAA,MACA,SAAA,O3CwII,UAAA,Q2CrIJ,iBAAA,sBACA,gBAAA,YACA,OAAA,IAAA,MAAA,eACA,WAAA,EAAA,OAAA,OAAA,eACA,wBAAA,WAAA,gBAAA,WACA,QAAA,EpCLE,cAAA,OoCLJ,wBAcI,cAAA,OAdJ,eAkBI,QAAA,EAlBJ,YAsBI,QAAA,MACA,QAAA,EAvBJ,YA2BI,QAAA,KAIJ,cACE,QAAA,KACA,YAAA,OACA,QAAA,OAAA,OACA,MAAA,QACA,iBAAA,sBACA,gBAAA,YACA,cAAA,IAAA,MAAA,gBAGF,YACE,QAAA,OCpCF,YAEE,SAAA,OAFF,mBAKI,WAAA,OACA,WAAA,KAKJ,OACE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,OAAA,KACA,SAAA,OAGA,QAAA,EAOF,cACE,SAAA,SACA,MAAA,KACA,OAAA,MAEA,eAAA,KAGA,0B5BrCI,WAAA,kBAAA,IAAA,SAAA,WAAA,UAAA,IAAA,SAAA,WAAA,UAAA,IAAA,QAAA,CAAA,kBAAA,IAAA,S4BuCF,kBAAA,mBAAA,UAAA,mB5BlCA,uC4BgCF,0B5B/BI,WAAA,M4BmCJ,0BACE,kBAAA,KAAA,UAAA,KAIJ,yBACE,QAAA,KACA,WAAA,kBAFF,wCAKI,WAAA,mBACA,SAAA,O7CwrKJ,uC6C9rKA,uCAWI,YAAA,EAXJ,qCAeI,WAAA,KAIJ,uBACE,QAAA,KACA,YAAA,OACA,WAAA,kBAHF,+BAOI,QAAA,MACA,OAAA,mBACA,QAAA,GATJ,+CAcI,eAAA,OACA,gBAAA,OACA,OAAA,KAhBJ,8DAmBM,WAAA,KAnBN,uDAuBM,QAAA,KAMN,eACE,SAAA,SACA,QAAA,KACA,eAAA,OACA,MAAA,KAGA,eAAA,KACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,erCzGE,cAAA,MqC6GF,QAAA,EAIF,gBACE,SAAA,MACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,MAAA,MACA,OAAA,MACA,iBAAA,KAPF,qBAUW,QAAA,EAVX,qBAWW,QAAA,GAKX,cACE,QAAA,KACA,YAAA,WACA,gBAAA,cACA,QAAA,KAAA,KACA,cAAA,IAAA,MAAA,QrC7HE,uBAAA,MACA,wBAAA,MqCuHJ,qBASI,QAAA,KAAA,KAEA,OAAA,MAAA,MAAA,MAAA,KAKJ,aACE,cAAA,EACA,YAAA,IAKF,YACE,SAAA,SAGA,KAAA,EAAA,EAAA,KACA,QAAA,KAIF,cACE,QAAA,KACA,YAAA,OACA,gBAAA,SACA,QAAA,KACA,WAAA,IAAA,MAAA,QrC/IE,2BAAA,MACA,0BAAA,MqCyIJ,iCASyB,YAAA,OATzB,gCAUwB,aAAA,OAIxB,yBACE,SAAA,SACA,IAAA,QACA,MAAA,KACA,OAAA,KACA,SAAA,OjC7HE,yBiCzBJ,cA6JI,UAAA,MACA,OAAA,QAAA,KA7IJ,yBAiJI,WAAA,oBAjJJ,wCAoJM,WAAA,qBAjIN,uBAsII,WAAA,oBAtIJ,+BAyIM,OAAA,qBAQJ,UAAY,UAAA,OjC5JV,yBiCgKF,U7CmqKA,U6CjqKE,UAAA,OjClKA,0BiCuKF,UAAY,UAAA,QClOd,SACE,SAAA,SACA,QAAA,KACA,QAAA,MACA,OAAA,ECJA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,YAAA,OACA,WAAA,K9C2HI,UAAA,Q6C/HJ,UAAA,WACA,QAAA,EAXF,cAaW,QAAA,GAbX,wBAgBI,SAAA,SACA,QAAA,MACA,MAAA,MACA,OAAA,MAnBJ,gCAsBM,SAAA,SACA,QAAA,GACA,aAAA,YACA,aAAA,MAKN,mCAAA,gBACE,QAAA,MAAA,EADF,kDAAA,+BAII,OAAA,EAJJ,0DAAA,uCAOM,IAAA,EACA,aAAA,MAAA,MAAA,EACA,iBAAA,KAKN,qCAAA,kBACE,QAAA,EAAA,MADF,oDAAA,iCAII,KAAA,EACA,MAAA,MACA,OAAA,MANJ,4DAAA,yCASM,MAAA,EACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,KAKN,sCAAA,mBACE,QAAA,MAAA,EADF,qDAAA,kCAII,IAAA,EAJJ,6DAAA,0CAOM,OAAA,EACA,aAAA,EAAA,MAAA,MACA,oBAAA,KAKN,oCAAA,iBACE,QAAA,EAAA,MADF,mDAAA,gCAII,MAAA,EACA,MAAA,MACA,OAAA,MANJ,2DAAA,wCASM,KAAA,EACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,KAqBN,eACE,UAAA,MACA,QAAA,OAAA,MACA,MAAA,KACA,WAAA,OACA,iBAAA,KtC3GE,cAAA,OwCLJ,SACE,SAAA,SACA,IAAA,EACA,KAAA,EACA,QAAA,KACA,QAAA,MACA,UAAA,MDLA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBAEA,WAAA,OACA,YAAA,IACA,YAAA,IACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,OACA,WAAA,OACA,aAAA,OACA,YAAA,OACA,WAAA,K9C2HI,UAAA,Q+C9HJ,UAAA,WACA,iBAAA,KACA,gBAAA,YACA,OAAA,IAAA,MAAA,exCVE,cAAA,MwCLJ,wBAoBI,SAAA,SACA,QAAA,MACA,MAAA,KACA,OAAA,MACA,OAAA,EAAA,MAxBJ,+BAAA,gCA4BM,SAAA,SACA,QAAA,MACA,QAAA,GACA,aAAA,YACA,aAAA,MAKN,mCAAA,gBACE,cAAA,MADF,kDAAA,+BAII,OAAA,yBAJJ,0DAAA,uCAOM,OAAA,EACA,aAAA,MAAA,MAAA,EACA,iBAAA,gBATN,yDAAA,sCAaM,OAAA,IACA,aAAA,MAAA,MAAA,EACA,iBAAA,KAKN,qCAAA,kBACE,YAAA,MADF,oDAAA,iCAII,KAAA,yBACA,MAAA,MACA,OAAA,KACA,OAAA,MAAA,EAPJ,4DAAA,yCAUM,KAAA,EACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,gBAZN,2DAAA,wCAgBM,KAAA,IACA,aAAA,MAAA,MAAA,MAAA,EACA,mBAAA,KAKN,sCAAA,mBACE,WAAA,MADF,qDAAA,kCAII,IAAA,yBAJJ,6DAAA,0CAOM,IAAA,EACA,aAAA,EAAA,MAAA,MAAA,MACA,oBAAA,gBATN,4DAAA,yCAaM,IAAA,IACA,aAAA,EAAA,MAAA,MAAA,MACA,oBAAA,KAfN,8DAAA,2CAqBI,SAAA,SACA,IAAA,EACA,KAAA,IACA,QAAA,MACA,MAAA,KACA,YAAA,OACA,QAAA,GACA,cAAA,IAAA,MAAA,QAIJ,oCAAA,iBACE,aAAA,MADF,mDAAA,gCAII,MAAA,yBACA,MAAA,MACA,OAAA,KACA,OAAA,MAAA,EAPJ,2DAAA,wCAUM,MAAA,EACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,gBAZN,0DAAA,uCAgBM,MAAA,IACA,aAAA,MAAA,EAAA,MAAA,MACA,kBAAA,KAsBN,gBACE,QAAA,MAAA,OACA,cAAA,E/ChBI,UAAA,K+CmBJ,iBAAA,QACA,cAAA,IAAA,MAAA,QxChJE,uBAAA,kBACA,wBAAA,kBwCyIJ,sBAWI,QAAA,KAIJ,cACE,QAAA,MAAA,OACA,MAAA,QC5JF,UACE,SAAA,SAGF,wBACE,aAAA,MAGF,gBACE,SAAA,SACA,MAAA,KACA,SAAA,OCvBA,uBACE,QAAA,MACA,MAAA,KACA,QAAA,GDwBJ,eACE,SAAA,SACA,QAAA,KACA,MAAA,KACA,MAAA,KACA,aAAA,MACA,4BAAA,OAAA,oBAAA,OhC5BI,WAAA,kBAAA,IAAA,YAAA,WAAA,UAAA,IAAA,YAAA,WAAA,UAAA,IAAA,WAAA,CAAA,kBAAA,IAAA,YAKF,uCgCiBJ,ehChBM,WAAA,MjBsrLN,oBACA,oBiD7pLA,sBAGE,QAAA,MjD+pLF,4BiD5pLA,6CAEE,kBAAA,iBAAA,UAAA,iBjDgqLF,2BiD7pLA,8CAEE,kBAAA,kBAAA,UAAA,kBAQF,8BAEI,QAAA,EACA,oBAAA,QACA,kBAAA,KAAA,UAAA,KjD4pLJ,sDACA,uDiDjqLA,qCAUI,QAAA,EACA,QAAA,EAXJ,0CjDuqLA,2CiDvpLI,QAAA,EACA,QAAA,EhCtEE,WAAA,GAAA,IAAA,QAKF,uCgCgDJ,0CjD+qLE,2CiB9tLI,WAAA,MjBouLN,uBiD1pLA,uBAEE,SAAA,SACA,IAAA,EACA,OAAA,EACA,QAAA,EAEA,QAAA,KACA,YAAA,OACA,gBAAA,OACA,MAAA,IACA,MAAA,KACA,WAAA,OACA,QAAA,GhC7FI,WAAA,QAAA,KAAA,KAKF,uCjBsvLF,uBiD3qLF,uBhC1EM,WAAA,MjB4vLN,6BADA,6BGvvLE,6BAAA,6B8CwFE,MAAA,KACA,gBAAA,KACA,QAAA,EACA,QAAA,GAGJ,uBACE,KAAA,EAKF,uBACE,MAAA,EjDmqLF,4BiD5pLA,4BAEE,QAAA,aACA,MAAA,KACA,OAAA,KACA,WAAA,UAAA,GAAA,CAAA,KAAA,KAEF,4BACE,iBAAA,kLAEF,4BACE,iBAAA,kLASF,qBACE,SAAA,SACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,GACA,QAAA,KACA,gBAAA,OACA,aAAA,EAEA,aAAA,IACA,YAAA,IACA,WAAA,KAZF,wBAeI,WAAA,YACA,KAAA,EAAA,EAAA,KACA,MAAA,KACA,OAAA,IACA,aAAA,IACA,YAAA,IACA,YAAA,OACA,OAAA,QACA,iBAAA,KACA,gBAAA,YAEA,WAAA,KAAA,MAAA,YACA,cAAA,KAAA,MAAA,YACA,QAAA,GhCtKE,WAAA,QAAA,IAAA,KAKF,uCgCqIJ,wBhCpIM,WAAA,MgCoIN,6BAiCI,QAAA,EASJ,kBACE,SAAA,SACA,MAAA,IACA,OAAA,KACA,KAAA,IACA,QAAA,GACA,YAAA,KACA,eAAA,KACA,MAAA,KACA,WAAA,OE/LF,kCACE,GAAK,kBAAA,eAAA,UAAA,gBADP,0BACE,GAAK,kBAAA,eAAA,UAAA,gBAGP,gBACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,eAAA,YACA,OAAA,MAAA,MAAA,aACA,mBAAA,YAEA,cAAA,IACA,kBAAA,eAAA,KAAA,OAAA,SAAA,UAAA,eAAA,KAAA,OAAA,SAGF,mBACE,MAAA,KACA,OAAA,KACA,aAAA,KAOF,gCACE,GACE,kBAAA,SAAA,UAAA,SAEF,IACE,QAAA,GALJ,wBACE,GACE,kBAAA,SAAA,UAAA,SAEF,IACE,QAAA,GAIJ,cACE,QAAA,aACA,MAAA,KACA,OAAA,KACA,eAAA,YACA,iBAAA,aAEA,cAAA,IACA,QAAA,EACA,kBAAA,aAAA,KAAA,OAAA,SAAA,UAAA,aAAA,KAAA,OAAA,SAGF,iBACE,MAAA,KACA,OAAA,KCnDF,gBAAqB,eAAA,mBACrB,WAAqB,eAAA,cACrB,cAAqB,eAAA,iBACrB,cAAqB,eAAA,iBACrB,mBAAqB,eAAA,sBACrB,gBAAqB,eAAA,mBCJnB,YACE,iBAAA,kBADF,cACE,iBAAA,kBADF,YACE,iBAAA,kBADF,SACE,iBAAA,kBADF,YACE,iBAAA,kBADF,WACE,iBAAA,kBADF,UACE,iBAAA,kBADF,SACE,iBAAA,kBAUJ,UACE,iBAAA,eAGF,gBACE,iBAAA,sBCbF,QAAkB,OAAA,IAAA,MAAA,kBAClB,YAAkB,WAAA,IAAA,MAAA,kBAClB,cAAkB,aAAA,IAAA,MAAA,kBAClB,eAAkB,cAAA,IAAA,MAAA,kBAClB,aAAkB,YAAA,IAAA,MAAA,kBAElB,UAAmB,OAAA,YACnB,cAAmB,WAAA,YACnB,gBAAmB,aAAA,YACnB,iBAAmB,cAAA,YACnB,eAAmB,YAAA,YAGjB,gBACE,aAAA,kBADF,kBACE,aAAA,kBADF,gBACE,aAAA,kBADF,aACE,aAAA,kBADF,gBACE,aAAA,kBADF,eACE,aAAA,kBADF,cACE,aAAA,kBADF,aACE,aAAA,kBAIJ,cACE,aAAA,eAOF,YACE,cAAA,gBAGF,SACE,cAAA,iBAGF,aACE,uBAAA,iBACA,wBAAA,iBAGF,eACE,wBAAA,iBACA,2BAAA,iBAGF,gBACE,2BAAA,iBACA,0BAAA,iBAGF,cACE,uBAAA,iBACA,0BAAA,iBAGF,YACE,cAAA,gBAGF,gBACE,cAAA,cAGF,cACE,cAAA,gBAGF,WACE,cAAA,YJxEA,iBACE,QAAA,MACA,MAAA,KACA,QAAA,GKOE,QAAwB,QAAA,eAAxB,UAAwB,QAAA,iBAAxB,gBAAwB,QAAA,uBAAxB,SAAwB,QAAA,gBAAxB,SAAwB,QAAA,gBAAxB,aAAwB,QAAA,oBAAxB,cAAwB,QAAA,qBAAxB,QAAwB,QAAA,eAAxB,eAAwB,QAAA,sB3CiD1B,yB2CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,eAAxB,kBAAwB,QAAA,uB3CiD1B,yB2CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,eAAxB,kBAAwB,QAAA,uB3CiD1B,yB2CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,eAAxB,kBAAwB,QAAA,uB3CiD1B,0B2CjDE,WAAwB,QAAA,eAAxB,aAAwB,QAAA,iBAAxB,mBAAwB,QAAA,uBAAxB,YAAwB,QAAA,gBAAxB,YAAwB,QAAA,gBAAxB,gBAAwB,QAAA,oBAAxB,iBAAwB,QAAA,qBAAxB,WAAwB,QAAA,eAAxB,kBAAwB,QAAA,uBAU9B,aAEI,cAAqB,QAAA,eAArB,gBAAqB,QAAA,iBAArB,sBAAqB,QAAA,uBAArB,eAAqB,QAAA,gBAArB,eAAqB,QAAA,gBAArB,mBAAqB,QAAA,oBAArB,oBAAqB,QAAA,qBAArB,cAAqB,QAAA,eAArB,qBAAqB,QAAA,uBCrBzB,kBACE,SAAA,SACA,QAAA,MACA,MAAA,KACA,QAAA,EACA,SAAA,OALF,0BAQI,QAAA,MACA,QAAA,GATJ,yCxDsyMA,wBADA,yBAEA,yBACA,wBwDvxMI,SAAA,SACA,IAAA,EACA,OAAA,EACA,KAAA,EACA,MAAA,KACA,OAAA,KACA,OAAA,EAQF,gCAEI,YAAA,WAFJ,gCAEI,YAAA,OAFJ,+BAEI,YAAA,IAFJ,+BAEI,YAAA,KCzBF,UAAgC,eAAA,cAChC,aAAgC,eAAA,iBAChC,kBAAgC,eAAA,sBAChC,qBAAgC,eAAA,yBAEhC,WAA8B,UAAA,eAC9B,aAA8B,UAAA,iBAC9B,mBAA8B,UAAA,uBAC9B,WAA8B,KAAA,EAAA,EAAA,eAC9B,aAA8B,UAAA,YAC9B,aAA8B,UAAA,YAC9B,eAA8B,YAAA,YAC9B,eAA8B,YAAA,YAE9B,uBAAoC,gBAAA,qBACpC,qBAAoC,gBAAA,mBACpC,wBAAoC,gBAAA,iBACpC,yBAAoC,gBAAA,wBACpC,wBAAoC,gBAAA,uBAEpC,mBAAiC,YAAA,qBACjC,iBAAiC,YAAA,mBACjC,oBAAiC,YAAA,iBACjC,sBAAiC,YAAA,mBACjC,qBAAiC,YAAA,kBAEjC,qBAAkC,cAAA,qBAClC,mBAAkC,cAAA,mBAClC,sBAAkC,cAAA,iBAClC,uBAAkC,cAAA,wBAClC,sBAAkC,cAAA,uBAClC,uBAAkC,cAAA,kBAElC,iBAAgC,WAAA,eAChC,kBAAgC,WAAA,qBAChC,gBAAgC,WAAA,mBAChC,mBAAgC,WAAA,iBAChC,qBAAgC,WAAA,mBAChC,oBAAgC,WAAA,kB7CYhC,yB6ClDA,aAAgC,eAAA,cAChC,gBAAgC,eAAA,iBAChC,qBAAgC,eAAA,sBAChC,wBAAgC,eAAA,yBAEhC,cAA8B,UAAA,eAC9B,gBAA8B,UAAA,iBAC9B,sBAA8B,UAAA,uBAC9B,cAA8B,KAAA,EAAA,EAAA,eAC9B,gBAA8B,UAAA,YAC9B,gBAA8B,UAAA,YAC9B,kBAA8B,YAAA,YAC9B,kBAA8B,YAAA,YAE9B,0BAAoC,gBAAA,qBACpC,wBAAoC,gBAAA,mBACpC,2BAAoC,gBAAA,iBACpC,4BAAoC,gBAAA,wBACpC,2BAAoC,gBAAA,uBAEpC,sBAAiC,YAAA,qBACjC,oBAAiC,YAAA,mBACjC,uBAAiC,YAAA,iBACjC,yBAAiC,YAAA,mBACjC,wBAAiC,YAAA,kBAEjC,wBAAkC,cAAA,qBAClC,sBAAkC,cAAA,mBAClC,yBAAkC,cAAA,iBAClC,0BAAkC,cAAA,wBAClC,yBAAkC,cAAA,uBAClC,0BAAkC,cAAA,kBAElC,oBAAgC,WAAA,eAChC,qBAAgC,WAAA,qBAChC,mBAAgC,WAAA,mBAChC,sBAAgC,WAAA,iBAChC,wBAAgC,WAAA,mBAChC,uBAAgC,WAAA,mB7CYhC,yB6ClDA,aAAgC,eAAA,cAChC,gBAAgC,eAAA,iBAChC,qBAAgC,eAAA,sBAChC,wBAAgC,eAAA,yBAEhC,cAA8B,UAAA,eAC9B,gBAA8B,UAAA,iBAC9B,sBAA8B,UAAA,uBAC9B,cAA8B,KAAA,EAAA,EAAA,eAC9B,gBAA8B,UAAA,YAC9B,gBAA8B,UAAA,YAC9B,kBAA8B,YAAA,YAC9B,kBAA8B,YAAA,YAE9B,0BAAoC,gBAAA,qBACpC,wBAAoC,gBAAA,mBACpC,2BAAoC,gBAAA,iBACpC,4BAAoC,gBAAA,wBACpC,2BAAoC,gBAAA,uBAEpC,sBAAiC,YAAA,qBACjC,oBAAiC,YAAA,mBACjC,uBAAiC,YAAA,iBACjC,yBAAiC,YAAA,mBACjC,wBAAiC,YAAA,kBAEjC,wBAAkC,cAAA,qBAClC,sBAAkC,cAAA,mBAClC,yBAAkC,cAAA,iBAClC,0BAAkC,cAAA,wBAClC,yBAAkC,cAAA,uBAClC,0BAAkC,cAAA,kBAElC,oBAAgC,WAAA,eAChC,qBAAgC,WAAA,qBAChC,mBAAgC,WAAA,mBAChC,sBAAgC,WAAA,iBAChC,wBAAgC,WAAA,mBAChC,uBAAgC,WAAA,mB7CYhC,yB6ClDA,aAAgC,eAAA,cAChC,gBAAgC,eAAA,iBAChC,qBAAgC,eAAA,sBAChC,wBAAgC,eAAA,yBAEhC,cAA8B,UAAA,eAC9B,gBAA8B,UAAA,iBAC9B,sBAA8B,UAAA,uBAC9B,cAA8B,KAAA,EAAA,EAAA,eAC9B,gBAA8B,UAAA,YAC9B,gBAA8B,UAAA,YAC9B,kBAA8B,YAAA,YAC9B,kBAA8B,YAAA,YAE9B,0BAAoC,gBAAA,qBACpC,wBAAoC,gBAAA,mBACpC,2BAAoC,gBAAA,iBACpC,4BAAoC,gBAAA,wBACpC,2BAAoC,gBAAA,uBAEpC,sBAAiC,YAAA,qBACjC,oBAAiC,YAAA,mBACjC,uBAAiC,YAAA,iBACjC,yBAAiC,YAAA,mBACjC,wBAAiC,YAAA,kBAEjC,wBAAkC,cAAA,qBAClC,sBAAkC,cAAA,mBAClC,yBAAkC,cAAA,iBAClC,0BAAkC,cAAA,wBAClC,yBAAkC,cAAA,uBAClC,0BAAkC,cAAA,kBAElC,oBAAgC,WAAA,eAChC,qBAAgC,WAAA,qBAChC,mBAAgC,WAAA,mBAChC,sBAAgC,WAAA,iBAChC,wBAAgC,WAAA,mBAChC,uBAAgC,WAAA,mB7CYhC,0B6ClDA,aAAgC,eAAA,cAChC,gBAAgC,eAAA,iBAChC,qBAAgC,eAAA,sBAChC,wBAAgC,eAAA,yBAEhC,cAA8B,UAAA,eAC9B,gBAA8B,UAAA,iBAC9B,sBAA8B,UAAA,uBAC9B,cAA8B,KAAA,EAAA,EAAA,eAC9B,gBAA8B,UAAA,YAC9B,gBAA8B,UAAA,YAC9B,kBAA8B,YAAA,YAC9B,kBAA8B,YAAA,YAE9B,0BAAoC,gBAAA,qBACpC,wBAAoC,gBAAA,mBACpC,2BAAoC,gBAAA,iBACpC,4BAAoC,gBAAA,wBACpC,2BAAoC,gBAAA,uBAEpC,sBAAiC,YAAA,qBACjC,oBAAiC,YAAA,mBACjC,uBAAiC,YAAA,iBACjC,yBAAiC,YAAA,mBACjC,wBAAiC,YAAA,kBAEjC,wBAAkC,cAAA,qBAClC,sBAAkC,cAAA,mBAClC,yBAAkC,cAAA,iBAClC,0BAAkC,cAAA,wBAClC,yBAAkC,cAAA,uBAClC,0BAAkC,cAAA,kBAElC,oBAAgC,WAAA,eAChC,qBAAgC,WAAA,qBAChC,mBAAgC,WAAA,mBAChC,sBAAgC,WAAA,iBAChC,wBAAgC,WAAA,mBAChC,uBAAgC,WAAA,mBC1ChC,YAAwB,MAAA,eACxB,aAAwB,MAAA,gBACxB,YAAwB,MAAA,e9CoDxB,yB8CtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gB9CoDxB,yB8CtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gB9CoDxB,yB8CtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gB9CoDxB,0B8CtDA,eAAwB,MAAA,eACxB,gBAAwB,MAAA,gBACxB,eAAwB,MAAA,gBCL1B,eAAsB,SAAA,eAAtB,iBAAsB,SAAA,iBCCtB,iBAAyB,SAAA,iBAAzB,mBAAyB,SAAA,mBAAzB,mBAAyB,SAAA,mBAAzB,gBAAyB,SAAA,gBAAzB,iBAAyB,SAAA,yBAAA,SAAA,iBAK3B,WACE,SAAA,MACA,IAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,KAGF,cACE,SAAA,MACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,KAI4B,2DAD9B,YAEI,SAAA,eAAA,SAAA,OACA,IAAA,EACA,QAAA,MCzBJ,SCEE,SAAA,SACA,MAAA,IACA,OAAA,IACA,QAAA,EACA,SAAA,OACA,KAAA,cACA,YAAA,OACA,OAAA,EAUA,0BAAA,yBAEE,SAAA,OACA,MAAA,KACA,OAAA,KACA,SAAA,QACA,KAAA,KACA,YAAA,OC5BJ,WAAa,WAAA,EAAA,QAAA,OAAA,2BACb,QAAU,WAAA,EAAA,MAAA,KAAA,0BACV,WAAa,WAAA,EAAA,KAAA,KAAA,2BACb,aAAe,WAAA,eCCX,MAAuB,MAAA,cAAvB,MAAuB,MAAA,cAAvB,MAAuB,MAAA,cAAvB,OAAuB,MAAA,eAAvB,QAAuB,MAAA,eAAvB,MAAuB,OAAA,cAAvB,MAAuB,OAAA,cAAvB,MAAuB,OAAA,cAAvB,OAAuB,OAAA,eAAvB,QAAuB,OAAA,eAI3B,QAAU,UAAA,eACV,QAAU,WAAA,eAIV,YAAc,UAAA,gBACd,YAAc,WAAA,gBAEd,QAAU,MAAA,gBACV,QAAU,OAAA,gBCfV,uBAEI,SAAA,SACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EACA,QAAA,EAEA,eAAA,KACA,QAAA,GAEA,iBAAA,cCNI,KAAgC,OAAA,YAChC,MlE4kOR,MkE1kOU,WAAA,YAEF,MlE6kOR,MkE3kOU,aAAA,YAEF,MlE8kOR,MkE5kOU,cAAA,YAEF,MlE+kOR,MkE7kOU,YAAA,YAfF,KAAgC,OAAA,iBAChC,MlEomOR,MkElmOU,WAAA,iBAEF,MlEqmOR,MkEnmOU,aAAA,iBAEF,MlEsmOR,MkEpmOU,cAAA,iBAEF,MlEumOR,MkErmOU,YAAA,iBAfF,KAAgC,OAAA,gBAChC,MlE4nOR,MkE1nOU,WAAA,gBAEF,MlE6nOR,MkE3nOU,aAAA,gBAEF,MlE8nOR,MkE5nOU,cAAA,gBAEF,MlE+nOR,MkE7nOU,YAAA,gBAfF,KAAgC,OAAA,eAChC,MlEopOR,MkElpOU,WAAA,eAEF,MlEqpOR,MkEnpOU,aAAA,eAEF,MlEspOR,MkEppOU,cAAA,eAEF,MlEupOR,MkErpOU,YAAA,eAfF,KAAgC,OAAA,iBAChC,MlE4qOR,MkE1qOU,WAAA,iBAEF,MlE6qOR,MkE3qOU,aAAA,iBAEF,MlE8qOR,MkE5qOU,cAAA,iBAEF,MlE+qOR,MkE7qOU,YAAA,iBAfF,KAAgC,OAAA,eAChC,MlEosOR,MkElsOU,WAAA,eAEF,MlEqsOR,MkEnsOU,aAAA,eAEF,MlEssOR,MkEpsOU,cAAA,eAEF,MlEusOR,MkErsOU,YAAA,eAfF,KAAgC,QAAA,YAChC,MlE4tOR,MkE1tOU,YAAA,YAEF,MlE6tOR,MkE3tOU,cAAA,YAEF,MlE8tOR,MkE5tOU,eAAA,YAEF,MlE+tOR,MkE7tOU,aAAA,YAfF,KAAgC,QAAA,iBAChC,MlEovOR,MkElvOU,YAAA,iBAEF,MlEqvOR,MkEnvOU,cAAA,iBAEF,MlEsvOR,MkEpvOU,eAAA,iBAEF,MlEuvOR,MkErvOU,aAAA,iBAfF,KAAgC,QAAA,gBAChC,MlE4wOR,MkE1wOU,YAAA,gBAEF,MlE6wOR,MkE3wOU,cAAA,gBAEF,MlE8wOR,MkE5wOU,eAAA,gBAEF,MlE+wOR,MkE7wOU,aAAA,gBAfF,KAAgC,QAAA,eAChC,MlEoyOR,MkElyOU,YAAA,eAEF,MlEqyOR,MkEnyOU,cAAA,eAEF,MlEsyOR,MkEpyOU,eAAA,eAEF,MlEuyOR,MkEryOU,aAAA,eAfF,KAAgC,QAAA,iBAChC,MlE4zOR,MkE1zOU,YAAA,iBAEF,MlE6zOR,MkE3zOU,cAAA,iBAEF,MlE8zOR,MkE5zOU,eAAA,iBAEF,MlE+zOR,MkE7zOU,aAAA,iBAfF,KAAgC,QAAA,eAChC,MlEo1OR,MkEl1OU,YAAA,eAEF,MlEq1OR,MkEn1OU,cAAA,eAEF,MlEs1OR,MkEp1OU,eAAA,eAEF,MlEu1OR,MkEr1OU,aAAA,eAQF,MAAwB,OAAA,kBACxB,OlEq1OR,OkEn1OU,WAAA,kBAEF,OlEs1OR,OkEp1OU,aAAA,kBAEF,OlEu1OR,OkEr1OU,cAAA,kBAEF,OlEw1OR,OkEt1OU,YAAA,kBAfF,MAAwB,OAAA,iBACxB,OlE62OR,OkE32OU,WAAA,iBAEF,OlE82OR,OkE52OU,aAAA,iBAEF,OlE+2OR,OkE72OU,cAAA,iBAEF,OlEg3OR,OkE92OU,YAAA,iBAfF,MAAwB,OAAA,gBACxB,OlEq4OR,OkEn4OU,WAAA,gBAEF,OlEs4OR,OkEp4OU,aAAA,gBAEF,OlEu4OR,OkEr4OU,cAAA,gBAEF,OlEw4OR,OkEt4OU,YAAA,gBAfF,MAAwB,OAAA,kBACxB,OlE65OR,OkE35OU,WAAA,kBAEF,OlE85OR,OkE55OU,aAAA,kBAEF,OlE+5OR,OkE75OU,cAAA,kBAEF,OlEg6OR,OkE95OU,YAAA,kBAfF,MAAwB,OAAA,gBACxB,OlEq7OR,OkEn7OU,WAAA,gBAEF,OlEs7OR,OkEp7OU,aAAA,gBAEF,OlEu7OR,OkEr7OU,cAAA,gBAEF,OlEw7OR,OkEt7OU,YAAA,gBAMN,QAAmB,OAAA,eACnB,SlEw7OJ,SkEt7OM,WAAA,eAEF,SlEy7OJ,SkEv7OM,aAAA,eAEF,SlE07OJ,SkEx7OM,cAAA,eAEF,SlE27OJ,SkEz7OM,YAAA,etDTF,yBsDlDI,QAAgC,OAAA,YAChC,SlE4/ON,SkE1/OQ,WAAA,YAEF,SlE4/ON,SkE1/OQ,aAAA,YAEF,SlE4/ON,SkE1/OQ,cAAA,YAEF,SlE4/ON,SkE1/OQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SlE+gPN,SkE7gPQ,WAAA,iBAEF,SlE+gPN,SkE7gPQ,aAAA,iBAEF,SlE+gPN,SkE7gPQ,cAAA,iBAEF,SlE+gPN,SkE7gPQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SlEkiPN,SkEhiPQ,WAAA,gBAEF,SlEkiPN,SkEhiPQ,aAAA,gBAEF,SlEkiPN,SkEhiPQ,cAAA,gBAEF,SlEkiPN,SkEhiPQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SlEqjPN,SkEnjPQ,WAAA,eAEF,SlEqjPN,SkEnjPQ,aAAA,eAEF,SlEqjPN,SkEnjPQ,cAAA,eAEF,SlEqjPN,SkEnjPQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SlEwkPN,SkEtkPQ,WAAA,iBAEF,SlEwkPN,SkEtkPQ,aAAA,iBAEF,SlEwkPN,SkEtkPQ,cAAA,iBAEF,SlEwkPN,SkEtkPQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SlE2lPN,SkEzlPQ,WAAA,eAEF,SlE2lPN,SkEzlPQ,aAAA,eAEF,SlE2lPN,SkEzlPQ,cAAA,eAEF,SlE2lPN,SkEzlPQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SlE8mPN,SkE5mPQ,YAAA,YAEF,SlE8mPN,SkE5mPQ,cAAA,YAEF,SlE8mPN,SkE5mPQ,eAAA,YAEF,SlE8mPN,SkE5mPQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SlEioPN,SkE/nPQ,YAAA,iBAEF,SlEioPN,SkE/nPQ,cAAA,iBAEF,SlEioPN,SkE/nPQ,eAAA,iBAEF,SlEioPN,SkE/nPQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SlEopPN,SkElpPQ,YAAA,gBAEF,SlEopPN,SkElpPQ,cAAA,gBAEF,SlEopPN,SkElpPQ,eAAA,gBAEF,SlEopPN,SkElpPQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SlEuqPN,SkErqPQ,YAAA,eAEF,SlEuqPN,SkErqPQ,cAAA,eAEF,SlEuqPN,SkErqPQ,eAAA,eAEF,SlEuqPN,SkErqPQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SlE0rPN,SkExrPQ,YAAA,iBAEF,SlE0rPN,SkExrPQ,cAAA,iBAEF,SlE0rPN,SkExrPQ,eAAA,iBAEF,SlE0rPN,SkExrPQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SlE6sPN,SkE3sPQ,YAAA,eAEF,SlE6sPN,SkE3sPQ,cAAA,eAEF,SlE6sPN,SkE3sPQ,eAAA,eAEF,SlE6sPN,SkE3sPQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UlEysPN,UkEvsPQ,WAAA,kBAEF,UlEysPN,UkEvsPQ,aAAA,kBAEF,UlEysPN,UkEvsPQ,cAAA,kBAEF,UlEysPN,UkEvsPQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UlE4tPN,UkE1tPQ,WAAA,iBAEF,UlE4tPN,UkE1tPQ,aAAA,iBAEF,UlE4tPN,UkE1tPQ,cAAA,iBAEF,UlE4tPN,UkE1tPQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UlE+uPN,UkE7uPQ,WAAA,gBAEF,UlE+uPN,UkE7uPQ,aAAA,gBAEF,UlE+uPN,UkE7uPQ,cAAA,gBAEF,UlE+uPN,UkE7uPQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UlEkwPN,UkEhwPQ,WAAA,kBAEF,UlEkwPN,UkEhwPQ,aAAA,kBAEF,UlEkwPN,UkEhwPQ,cAAA,kBAEF,UlEkwPN,UkEhwPQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UlEqxPN,UkEnxPQ,WAAA,gBAEF,UlEqxPN,UkEnxPQ,aAAA,gBAEF,UlEqxPN,UkEnxPQ,cAAA,gBAEF,UlEqxPN,UkEnxPQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YlEmxPF,YkEjxPI,WAAA,eAEF,YlEmxPF,YkEjxPI,aAAA,eAEF,YlEmxPF,YkEjxPI,cAAA,eAEF,YlEmxPF,YkEjxPI,YAAA,gBtDTF,yBsDlDI,QAAgC,OAAA,YAChC,SlEq1PN,SkEn1PQ,WAAA,YAEF,SlEq1PN,SkEn1PQ,aAAA,YAEF,SlEq1PN,SkEn1PQ,cAAA,YAEF,SlEq1PN,SkEn1PQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SlEw2PN,SkEt2PQ,WAAA,iBAEF,SlEw2PN,SkEt2PQ,aAAA,iBAEF,SlEw2PN,SkEt2PQ,cAAA,iBAEF,SlEw2PN,SkEt2PQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SlE23PN,SkEz3PQ,WAAA,gBAEF,SlE23PN,SkEz3PQ,aAAA,gBAEF,SlE23PN,SkEz3PQ,cAAA,gBAEF,SlE23PN,SkEz3PQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SlE84PN,SkE54PQ,WAAA,eAEF,SlE84PN,SkE54PQ,aAAA,eAEF,SlE84PN,SkE54PQ,cAAA,eAEF,SlE84PN,SkE54PQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SlEi6PN,SkE/5PQ,WAAA,iBAEF,SlEi6PN,SkE/5PQ,aAAA,iBAEF,SlEi6PN,SkE/5PQ,cAAA,iBAEF,SlEi6PN,SkE/5PQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SlEo7PN,SkEl7PQ,WAAA,eAEF,SlEo7PN,SkEl7PQ,aAAA,eAEF,SlEo7PN,SkEl7PQ,cAAA,eAEF,SlEo7PN,SkEl7PQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SlEu8PN,SkEr8PQ,YAAA,YAEF,SlEu8PN,SkEr8PQ,cAAA,YAEF,SlEu8PN,SkEr8PQ,eAAA,YAEF,SlEu8PN,SkEr8PQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SlE09PN,SkEx9PQ,YAAA,iBAEF,SlE09PN,SkEx9PQ,cAAA,iBAEF,SlE09PN,SkEx9PQ,eAAA,iBAEF,SlE09PN,SkEx9PQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SlE6+PN,SkE3+PQ,YAAA,gBAEF,SlE6+PN,SkE3+PQ,cAAA,gBAEF,SlE6+PN,SkE3+PQ,eAAA,gBAEF,SlE6+PN,SkE3+PQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SlEggQN,SkE9/PQ,YAAA,eAEF,SlEggQN,SkE9/PQ,cAAA,eAEF,SlEggQN,SkE9/PQ,eAAA,eAEF,SlEggQN,SkE9/PQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SlEmhQN,SkEjhQQ,YAAA,iBAEF,SlEmhQN,SkEjhQQ,cAAA,iBAEF,SlEmhQN,SkEjhQQ,eAAA,iBAEF,SlEmhQN,SkEjhQQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SlEsiQN,SkEpiQQ,YAAA,eAEF,SlEsiQN,SkEpiQQ,cAAA,eAEF,SlEsiQN,SkEpiQQ,eAAA,eAEF,SlEsiQN,SkEpiQQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UlEkiQN,UkEhiQQ,WAAA,kBAEF,UlEkiQN,UkEhiQQ,aAAA,kBAEF,UlEkiQN,UkEhiQQ,cAAA,kBAEF,UlEkiQN,UkEhiQQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UlEqjQN,UkEnjQQ,WAAA,iBAEF,UlEqjQN,UkEnjQQ,aAAA,iBAEF,UlEqjQN,UkEnjQQ,cAAA,iBAEF,UlEqjQN,UkEnjQQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UlEwkQN,UkEtkQQ,WAAA,gBAEF,UlEwkQN,UkEtkQQ,aAAA,gBAEF,UlEwkQN,UkEtkQQ,cAAA,gBAEF,UlEwkQN,UkEtkQQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UlE2lQN,UkEzlQQ,WAAA,kBAEF,UlE2lQN,UkEzlQQ,aAAA,kBAEF,UlE2lQN,UkEzlQQ,cAAA,kBAEF,UlE2lQN,UkEzlQQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UlE8mQN,UkE5mQQ,WAAA,gBAEF,UlE8mQN,UkE5mQQ,aAAA,gBAEF,UlE8mQN,UkE5mQQ,cAAA,gBAEF,UlE8mQN,UkE5mQQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YlE4mQF,YkE1mQI,WAAA,eAEF,YlE4mQF,YkE1mQI,aAAA,eAEF,YlE4mQF,YkE1mQI,cAAA,eAEF,YlE4mQF,YkE1mQI,YAAA,gBtDTF,yBsDlDI,QAAgC,OAAA,YAChC,SlE8qQN,SkE5qQQ,WAAA,YAEF,SlE8qQN,SkE5qQQ,aAAA,YAEF,SlE8qQN,SkE5qQQ,cAAA,YAEF,SlE8qQN,SkE5qQQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SlEisQN,SkE/rQQ,WAAA,iBAEF,SlEisQN,SkE/rQQ,aAAA,iBAEF,SlEisQN,SkE/rQQ,cAAA,iBAEF,SlEisQN,SkE/rQQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SlEotQN,SkEltQQ,WAAA,gBAEF,SlEotQN,SkEltQQ,aAAA,gBAEF,SlEotQN,SkEltQQ,cAAA,gBAEF,SlEotQN,SkEltQQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SlEuuQN,SkEruQQ,WAAA,eAEF,SlEuuQN,SkEruQQ,aAAA,eAEF,SlEuuQN,SkEruQQ,cAAA,eAEF,SlEuuQN,SkEruQQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SlE0vQN,SkExvQQ,WAAA,iBAEF,SlE0vQN,SkExvQQ,aAAA,iBAEF,SlE0vQN,SkExvQQ,cAAA,iBAEF,SlE0vQN,SkExvQQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SlE6wQN,SkE3wQQ,WAAA,eAEF,SlE6wQN,SkE3wQQ,aAAA,eAEF,SlE6wQN,SkE3wQQ,cAAA,eAEF,SlE6wQN,SkE3wQQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SlEgyQN,SkE9xQQ,YAAA,YAEF,SlEgyQN,SkE9xQQ,cAAA,YAEF,SlEgyQN,SkE9xQQ,eAAA,YAEF,SlEgyQN,SkE9xQQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SlEmzQN,SkEjzQQ,YAAA,iBAEF,SlEmzQN,SkEjzQQ,cAAA,iBAEF,SlEmzQN,SkEjzQQ,eAAA,iBAEF,SlEmzQN,SkEjzQQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SlEs0QN,SkEp0QQ,YAAA,gBAEF,SlEs0QN,SkEp0QQ,cAAA,gBAEF,SlEs0QN,SkEp0QQ,eAAA,gBAEF,SlEs0QN,SkEp0QQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SlEy1QN,SkEv1QQ,YAAA,eAEF,SlEy1QN,SkEv1QQ,cAAA,eAEF,SlEy1QN,SkEv1QQ,eAAA,eAEF,SlEy1QN,SkEv1QQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SlE42QN,SkE12QQ,YAAA,iBAEF,SlE42QN,SkE12QQ,cAAA,iBAEF,SlE42QN,SkE12QQ,eAAA,iBAEF,SlE42QN,SkE12QQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SlE+3QN,SkE73QQ,YAAA,eAEF,SlE+3QN,SkE73QQ,cAAA,eAEF,SlE+3QN,SkE73QQ,eAAA,eAEF,SlE+3QN,SkE73QQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UlE23QN,UkEz3QQ,WAAA,kBAEF,UlE23QN,UkEz3QQ,aAAA,kBAEF,UlE23QN,UkEz3QQ,cAAA,kBAEF,UlE23QN,UkEz3QQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UlE84QN,UkE54QQ,WAAA,iBAEF,UlE84QN,UkE54QQ,aAAA,iBAEF,UlE84QN,UkE54QQ,cAAA,iBAEF,UlE84QN,UkE54QQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UlEi6QN,UkE/5QQ,WAAA,gBAEF,UlEi6QN,UkE/5QQ,aAAA,gBAEF,UlEi6QN,UkE/5QQ,cAAA,gBAEF,UlEi6QN,UkE/5QQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UlEo7QN,UkEl7QQ,WAAA,kBAEF,UlEo7QN,UkEl7QQ,aAAA,kBAEF,UlEo7QN,UkEl7QQ,cAAA,kBAEF,UlEo7QN,UkEl7QQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UlEu8QN,UkEr8QQ,WAAA,gBAEF,UlEu8QN,UkEr8QQ,aAAA,gBAEF,UlEu8QN,UkEr8QQ,cAAA,gBAEF,UlEu8QN,UkEr8QQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YlEq8QF,YkEn8QI,WAAA,eAEF,YlEq8QF,YkEn8QI,aAAA,eAEF,YlEq8QF,YkEn8QI,cAAA,eAEF,YlEq8QF,YkEn8QI,YAAA,gBtDTF,0BsDlDI,QAAgC,OAAA,YAChC,SlEugRN,SkErgRQ,WAAA,YAEF,SlEugRN,SkErgRQ,aAAA,YAEF,SlEugRN,SkErgRQ,cAAA,YAEF,SlEugRN,SkErgRQ,YAAA,YAfF,QAAgC,OAAA,iBAChC,SlE0hRN,SkExhRQ,WAAA,iBAEF,SlE0hRN,SkExhRQ,aAAA,iBAEF,SlE0hRN,SkExhRQ,cAAA,iBAEF,SlE0hRN,SkExhRQ,YAAA,iBAfF,QAAgC,OAAA,gBAChC,SlE6iRN,SkE3iRQ,WAAA,gBAEF,SlE6iRN,SkE3iRQ,aAAA,gBAEF,SlE6iRN,SkE3iRQ,cAAA,gBAEF,SlE6iRN,SkE3iRQ,YAAA,gBAfF,QAAgC,OAAA,eAChC,SlEgkRN,SkE9jRQ,WAAA,eAEF,SlEgkRN,SkE9jRQ,aAAA,eAEF,SlEgkRN,SkE9jRQ,cAAA,eAEF,SlEgkRN,SkE9jRQ,YAAA,eAfF,QAAgC,OAAA,iBAChC,SlEmlRN,SkEjlRQ,WAAA,iBAEF,SlEmlRN,SkEjlRQ,aAAA,iBAEF,SlEmlRN,SkEjlRQ,cAAA,iBAEF,SlEmlRN,SkEjlRQ,YAAA,iBAfF,QAAgC,OAAA,eAChC,SlEsmRN,SkEpmRQ,WAAA,eAEF,SlEsmRN,SkEpmRQ,aAAA,eAEF,SlEsmRN,SkEpmRQ,cAAA,eAEF,SlEsmRN,SkEpmRQ,YAAA,eAfF,QAAgC,QAAA,YAChC,SlEynRN,SkEvnRQ,YAAA,YAEF,SlEynRN,SkEvnRQ,cAAA,YAEF,SlEynRN,SkEvnRQ,eAAA,YAEF,SlEynRN,SkEvnRQ,aAAA,YAfF,QAAgC,QAAA,iBAChC,SlE4oRN,SkE1oRQ,YAAA,iBAEF,SlE4oRN,SkE1oRQ,cAAA,iBAEF,SlE4oRN,SkE1oRQ,eAAA,iBAEF,SlE4oRN,SkE1oRQ,aAAA,iBAfF,QAAgC,QAAA,gBAChC,SlE+pRN,SkE7pRQ,YAAA,gBAEF,SlE+pRN,SkE7pRQ,cAAA,gBAEF,SlE+pRN,SkE7pRQ,eAAA,gBAEF,SlE+pRN,SkE7pRQ,aAAA,gBAfF,QAAgC,QAAA,eAChC,SlEkrRN,SkEhrRQ,YAAA,eAEF,SlEkrRN,SkEhrRQ,cAAA,eAEF,SlEkrRN,SkEhrRQ,eAAA,eAEF,SlEkrRN,SkEhrRQ,aAAA,eAfF,QAAgC,QAAA,iBAChC,SlEqsRN,SkEnsRQ,YAAA,iBAEF,SlEqsRN,SkEnsRQ,cAAA,iBAEF,SlEqsRN,SkEnsRQ,eAAA,iBAEF,SlEqsRN,SkEnsRQ,aAAA,iBAfF,QAAgC,QAAA,eAChC,SlEwtRN,SkEttRQ,YAAA,eAEF,SlEwtRN,SkEttRQ,cAAA,eAEF,SlEwtRN,SkEttRQ,eAAA,eAEF,SlEwtRN,SkEttRQ,aAAA,eAQF,SAAwB,OAAA,kBACxB,UlEotRN,UkEltRQ,WAAA,kBAEF,UlEotRN,UkEltRQ,aAAA,kBAEF,UlEotRN,UkEltRQ,cAAA,kBAEF,UlEotRN,UkEltRQ,YAAA,kBAfF,SAAwB,OAAA,iBACxB,UlEuuRN,UkEruRQ,WAAA,iBAEF,UlEuuRN,UkEruRQ,aAAA,iBAEF,UlEuuRN,UkEruRQ,cAAA,iBAEF,UlEuuRN,UkEruRQ,YAAA,iBAfF,SAAwB,OAAA,gBACxB,UlE0vRN,UkExvRQ,WAAA,gBAEF,UlE0vRN,UkExvRQ,aAAA,gBAEF,UlE0vRN,UkExvRQ,cAAA,gBAEF,UlE0vRN,UkExvRQ,YAAA,gBAfF,SAAwB,OAAA,kBACxB,UlE6wRN,UkE3wRQ,WAAA,kBAEF,UlE6wRN,UkE3wRQ,aAAA,kBAEF,UlE6wRN,UkE3wRQ,cAAA,kBAEF,UlE6wRN,UkE3wRQ,YAAA,kBAfF,SAAwB,OAAA,gBACxB,UlEgyRN,UkE9xRQ,WAAA,gBAEF,UlEgyRN,UkE9xRQ,aAAA,gBAEF,UlEgyRN,UkE9xRQ,cAAA,gBAEF,UlEgyRN,UkE9xRQ,YAAA,gBAMN,WAAmB,OAAA,eACnB,YlE8xRF,YkE5xRI,WAAA,eAEF,YlE8xRF,YkE5xRI,aAAA,eAEF,YlE8xRF,YkE5xRI,cAAA,eAEF,YlE8xRF,YkE5xRI,YAAA,gBC/DN,gBAAkB,YAAA,cAAA,CAAA,KAAA,CAAA,MAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,oBAIlB,cAAiB,WAAA,kBACjB,WAAiB,YAAA,iBACjB,aAAiB,YAAA,iBACjB,eCTE,SAAA,OACA,cAAA,SACA,YAAA,ODeE,WAAwB,WAAA,eACxB,YAAwB,WAAA,gBACxB,aAAwB,WAAA,iBvDqCxB,yBuDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBvDqCxB,yBuDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBvDqCxB,yBuDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBvDqCxB,0BuDvCA,cAAwB,WAAA,eACxB,eAAwB,WAAA,gBACxB,gBAAwB,WAAA,kBAM5B,gBAAmB,eAAA,oBACnB,gBAAmB,eAAA,oBACnB,iBAAmB,eAAA,qBAInB,mBAAuB,YAAA,cACvB,qBAAuB,YAAA,kBACvB,oBAAuB,YAAA,cACvB,kBAAuB,YAAA,cACvB,oBAAuB,YAAA,iBACvB,aAAuB,WAAA,iBAIvB,YAAc,MAAA,eEvCZ,cACE,MAAA,kBlEUF,qBAAA,qBkELM,MAAA,kBANN,gBACE,MAAA,kBlEUF,uBAAA,uBkELM,MAAA,kBANN,cACE,MAAA,kBlEUF,qBAAA,qBkELM,MAAA,kBANN,WACE,MAAA,kBlEUF,kBAAA,kBkELM,MAAA,kBANN,cACE,MAAA,kBlEUF,qBAAA,qBkELM,MAAA,kBANN,aACE,MAAA,kBlEUF,oBAAA,oBkELM,MAAA,kBANN,YACE,MAAA,kBlEUF,mBAAA,mBkELM,MAAA,kBANN,WACE,MAAA,kBlEUF,kBAAA,kBkELM,MAAA,kBFuCR,WAAa,MAAA,kBACb,YAAc,MAAA,kBAEd,eAAiB,MAAA,yBACjB,eAAiB,MAAA,+BAIjB,sBAAwB,gBAAA,eAExB,YACE,WAAA,qBACA,cAAA,qBAKF,YAAc,MAAA,kBG7Dd,SACE,WAAA,kBAGF,WACE,WAAA,iBCAA,axEOF,ECsjSE,QADA,SuEtjSI,YAAA,eAEA,WAAA,eAGF,YAEI,gBAAA,UASJ,mBACE,QAAA,KAAA,YAAA,IxEmMN,IwEpLM,YAAA,mBvEqiSJ,WuEniSE,IAEE,OAAA,IAAA,MAAA,QACA,kBAAA,MAQF,MACE,QAAA,mBvE+hSJ,IuE5hSE,GAEE,kBAAA,MvE8hSJ,GACA,GuE5hSE,EAGE,QAAA,EACA,OAAA,EAGF,GvE0hSF,GuExhSI,iBAAA,MAQF,MACE,KAAA,GxE5CN,KwE+CM,UAAA,gB7DvFJ,W6D0FI,UAAA,gBzC9EN,QyCmFM,QAAA,KpC/FN,OoCkGM,OAAA,IAAA,MAAA,KzDnGN,OyDuGM,gBAAA,mBADF,UvEohSF,UuE/gSM,iBAAA,evEmhSN,mBctlSF,mByD0EQ,OAAA,IAAA,MAAA,kBzDWR,YyDNM,MAAA,QvEghSJ,wBAFA,eepoSA,efqoSA,qBuEzgSM,aAAA,QzDlBR,sByDuBM,MAAA,QACA,aAAA","sourcesContent":["/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --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\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.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,\n.col-auto, .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,\n.col-sm-auto, .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,\n.col-md-auto, .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,\n.col-lg-auto, .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,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n -webkit-transform: translateX(0.75rem);\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -webkit-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n -moz-appearance: none;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion > .card:first-of-type:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.5em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n -webkit-animation: none;\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -50px);\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: none;\n transform: none;\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .tooltip-arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .popover-arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .popover-arrow, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .popover-arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .popover-arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .popover-arrow, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .popover-arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .popover-arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: -webkit-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n -webkit-transform: none;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-border {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: spinner-border .75s linear infinite;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes spinner-grow {\n 0% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: spinner-grow .75s linear infinite;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive font sizes\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/master/LICENSE)\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n@if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize font size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-disable-class {\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity, which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-enable-class {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query($mq-value) {\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @content;\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @content;\n }\n }\n}\n\n// Responsive font size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Remove unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font size\n $rfs-static: if($rfs-font-size-unit == rem, #{$fs / $rfs-rem-value}rem, #{$fs}px);\n\n // Only add the media query if the font size is bigger than the minimum font size\n @if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n @else {\n // Calculate the minimum font size for $fs\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between $fs and the minimum font size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n\n // Breakpoint formatting\n $mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit});\n\n @include _rfs-disable-class {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n\n @include _rfs-media-query($mq-value) {\n @include _rfs-enable-class {\n font-size: $rfs-fluid;\n }\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixins use RFS to rescale the font size\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --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\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n 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\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.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,\n.col-auto, .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,\n.col-sm-auto, .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,\n.col-md-auto, .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,\n.col-lg-auto, .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,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 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(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n background-repeat: no-repeat;\n background-position: center right calc(0.375em + 0.1875rem);\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: calc(1rem + 0.4rem);\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion > .card:first-of-type:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.5em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item {\n margin-right: -1px;\n margin-bottom: 0;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n margin-right: 0;\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .tooltip-arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .tooltip-arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .tooltip-arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .tooltip-arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .tooltip-arrow, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .tooltip-arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .tooltip-arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n 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\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .popover-arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .popover-arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .popover-arrow, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .popover-arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .popover-arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .popover-arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .popover-arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .popover-arrow, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .popover-arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .popover-arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .popover-arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus($ignore-warning: true);\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\nselect.form-control {\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `<label>/<legend>` default\n @include font-size(inherit); // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: $input-padding-y;\n padding-bottom: $input-padding-y;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n height: $input-height-sm;\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.form-control-lg {\n height: $input-height-lg;\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n// stylelint-disable-next-line no-duplicate-selectors\nselect.form-control {\n &[size],\n &[multiple] {\n height: auto;\n }\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$form-grid-gutter-width / 2;\n margin-left: -$form-grid-gutter-width / 2;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: $form-grid-gutter-width / 2;\n padding-left: $form-grid-gutter-width / 2;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n // Use disabled attribute instead of :disabled pseudo-class\n // Workaround for: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11295231\n &[disabled] ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server-side validation.\n\n@each $state, $data in $form-validation-states {\n @include form-validation-state($state, map-get($data, color), map-get($data, icon));\n}\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group,\n .custom-select {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus($ignore-warning: false) {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n @include deprecate(\"The `form-control-focus()` mixin\", \"v4.3.2\", \"v5\", $ignore-warning);\n}\n\n\n@mixin form-validation-state($state, $color, $icon) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n @include font-size($form-feedback-font-size);\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n margin-top: .1rem;\n @include font-size($form-feedback-tooltip-font-size);\n line-height: $form-feedback-tooltip-line-height;\n color: color-yiq($color);\n background-color: rgba($color, $form-feedback-tooltip-opacity);\n @include border-radius($form-feedback-tooltip-border-radius);\n }\n\n .form-control {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-image: $icon;\n background-repeat: no-repeat;\n background-position: center right $input-height-inner-quarter;\n background-size: $input-height-inner-half $input-height-inner-half;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n // stylelint-disable-next-line selector-no-qualifying-type\n textarea.form-control {\n .was-validated &:#{$state},\n &.is-#{$state} {\n @if $enable-validation-icons {\n padding-right: $input-height-inner;\n background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n }\n }\n }\n\n .custom-select {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n @if $enable-validation-icons {\n padding-right: $custom-select-feedback-icon-padding-right;\n background: $custom-select-background, $icon $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;\n }\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n\n .form-control-file {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .form-check-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n border-color: $color;\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:checked {\n ~ .custom-control-label::before {\n border-color: lighten($color, 10%);\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n &:not(:checked) ~ .custom-control-label::before {\n border-color: $color;\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-file-label {\n border-color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:focus {\n ~ .custom-file-label {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-family: $btn-font-family;\n font-weight: $btn-font-weight;\n color: $body-color;\n text-align: center;\n vertical-align: middle;\n user-select: none;\n background-color: transparent;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n @include hover {\n color: $body-color;\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active {\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n text-decoration: $link-decoration;\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n box-shadow: none;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n border-color: $color;\n\n @include hover {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @include border-radius($border-radius, 0);\n}\n",".fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n\n // Generate the caret automatically\n @include caret;\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n @include font-size($dropdown-font-size);\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .dropdown-menu#{$infix}-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu#{$infix}-right {\n right: 0;\n left: auto;\n }\n }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n // Prevent dropdown overflow if there's no padding\n // See https://github.com/twbs/bootstrap/pull/27703\n @if $dropdown-padding-y == 0 {\n &:first-child {\n @include border-top-radius($dropdown-inner-border-radius);\n }\n\n &:last-child {\n @include border-bottom-radius($dropdown-inner-border-radius);\n }\n }\n\n @include hover-focus {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n pointer-events: none;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-padding-y $dropdown-item-padding-x;\n margin-bottom: 0; // for use with heading elements\n @include font-size($font-size-sm);\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n","@mixin caret-down {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n margin-left: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @if $direction == down {\n @include caret-down;\n } @else if $direction == up {\n @include caret-up;\n } @else if $direction == right {\n @include caret-right;\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n margin-right: $caret-spacing;\n vertical-align: $caret-vertical-align;\n content: \"\";\n @include caret-left;\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 1 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n // Prevent double borders when buttons are next to each other\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-left: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropright &::after {\n margin-left: 0;\n }\n\n .dropleft &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n > .btn,\n > .btn-group {\n width: 100%;\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) {\n margin-top: -$btn-border-width;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .form-control-plaintext,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n // Add width 1% and flex-basis auto to ensure that button will not wrap out\n // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.\n width: 1%;\n margin-bottom: 0;\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n // Bring the \"active\" form control to the top of surrounding elements\n > .form-control:focus,\n > .custom-select:focus,\n > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n }\n\n // Bring the custom file input above the label\n > .custom-file .custom-file-input:focus {\n z-index: 4;\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n\n &:focus {\n z-index: 3;\n }\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n @include font-size($input-font-size); // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: $input-height-lg;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: $input-padding-y-lg $input-padding-x-lg;\n @include font-size($input-font-size-lg);\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: $input-height-sm;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: $input-padding-y-sm $input-padding-x-sm;\n @include font-size($input-font-size-sm);\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: $custom-select-padding-x + $custom-select-indicator-padding;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n display: block;\n min-height: $font-size-base * $line-height-base;\n padding-left: $custom-control-gutter + $custom-control-indicator-size;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n border-color: $custom-control-indicator-checked-border-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n }\n\n &:focus:not(:checked) ~ .custom-control-label::before {\n border-color: $custom-control-indicator-focus-border-color;\n }\n\n &:not(:disabled):active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n border-color: $custom-control-indicator-active-border-color;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n // Use disabled attribute instead of :disabled pseudo-class\n // Workaround for: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11295231\n &[disabled] {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of pseudo-elements.\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n color: $custom-control-label-color;\n vertical-align: top;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n background-color: $custom-control-indicator-bg;\n border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;\n left: -($custom-control-gutter + $custom-control-indicator-size);\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background: no-repeat 50% / #{$custom-control-indicator-bg-size};\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: $custom-checkbox-indicator-icon-checked;\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n border-color: $custom-checkbox-indicator-indeterminate-border-color;\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-indeterminate;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n &:indeterminate ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-image: $custom-radio-indicator-icon-checked;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// switches\n//\n// Tweak a few things for switches\n\n.custom-switch {\n padding-left: $custom-switch-width + $custom-control-gutter;\n\n .custom-control-label {\n &::before {\n left: -($custom-switch-width + $custom-control-gutter);\n width: $custom-switch-width;\n pointer-events: all;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n }\n\n &::after {\n top: calc(#{(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2)} + #{$custom-control-indicator-border-width * 2});\n left: calc(#{-($custom-switch-width + $custom-control-gutter)} + #{$custom-control-indicator-border-width * 2});\n width: $custom-switch-indicator-size;\n height: $custom-switch-indicator-size;\n background-color: $custom-control-indicator-border-color;\n // stylelint-disable-next-line property-blacklist\n border-radius: $custom-switch-indicator-border-radius;\n @include transition(transform .15s ease-in-out, $custom-forms-transition);\n }\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::after {\n background-color: $custom-control-indicator-bg;\n transform: translateX($custom-switch-width - $custom-control-indicator-size);\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n font-family: $custom-select-font-family;\n @include font-size($custom-select-font-size);\n font-weight: $custom-select-font-weight;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-background;\n background-color: $custom-select-bg;\n border: $custom-select-border-width solid $custom-select-border-color;\n @include border-radius($custom-select-border-radius, 0);\n @include box-shadow($custom-select-box-shadow);\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n @if $enable-shadows {\n box-shadow: $custom-select-box-shadow, $custom-select-focus-box-shadow;\n } @else {\n box-shadow: $custom-select-focus-box-shadow;\n }\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n display: none;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y-sm;\n padding-bottom: $custom-select-padding-y-sm;\n padding-left: $custom-select-padding-x-sm;\n @include font-size($custom-select-font-size-sm);\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y-lg;\n padding-bottom: $custom-select-padding-y-lg;\n padding-left: $custom-select-padding-x-lg;\n @include font-size($custom-select-font-size-lg);\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-label {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n }\n\n // Use disabled attribute instead of :disabled pseudo-class\n // Workaround for: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11295231\n &[disabled] ~ .custom-file-label {\n background-color: $custom-file-disabled-bg;\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n\n ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n font-family: $custom-file-font-family;\n font-weight: $custom-file-font-weight;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: $custom-file-height-inner;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: inherit;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n width: 100%;\n height: calc(#{$custom-range-thumb-height} + #{$custom-range-thumb-focus-box-shadow-width * 2});\n padding: 0; // Need to reset padding\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: none;\n\n // Pseudo-elements must be split across multiple rulesets to have an effect.\n // No box-shadow() mixin for focus accessibility.\n &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent; // Why?\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent;\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: 0; // Edge specific\n margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n @include transition($custom-forms-transition);\n appearance: none;\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-ms-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: transparent;\n border-color: transparent;\n border-width: $custom-range-thumb-height / 2;\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-fill-lower {\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &::-ms-fill-upper {\n margin-right: 15px; // arbitrary?\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &:disabled {\n &::-webkit-slider-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-webkit-slider-runnable-track {\n cursor: default;\n }\n\n &::-moz-range-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n\n &::-moz-range-track {\n cursor: default;\n }\n\n &::-ms-thumb {\n background-color: $custom-range-thumb-disabled-bg;\n }\n }\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n @include transition($custom-forms-transition);\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n pointer-events: none;\n cursor: default;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properties so that content nested within behave properly.\n > .container,\n > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n @include font-size($navbar-brand-font-size);\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n @include font-size($navbar-toggler-font-size);\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n > .container,\n > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n > .container,\n > .container-fluid {\n flex-wrap: nowrap;\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-brand-color;\n\n @include hover-focus {\n color: $navbar-light-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-light-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-brand-color;\n\n @include hover-focus {\n color: $navbar-dark-brand-hover-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-dark-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group:first-child {\n .list-group-item:first-child {\n @include border-top-radius($card-border-radius);\n }\n }\n\n > .list-group:last-child {\n .list-group-item:last-child {\n @include border-bottom-radius($card-border-radius);\n }\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n padding: $card-spacer-x;\n color: $card-color;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -$card-spacer-y / 2;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n color: $card-cap-color;\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n\n + .list-group {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -$card-spacer-x / 2;\n margin-bottom: -$card-spacer-y;\n margin-left: -$card-spacer-x / 2;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -$card-spacer-x / 2;\n margin-left: -$card-spacer-x / 2;\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n}\n\n.card-img {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-radius($card-inner-border-radius);\n}\n\n// Card image caps\n.card-img-top {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n display: flex;\n flex-direction: column;\n\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n display: flex;\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n display: flex;\n flex-direction: column;\n\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:not(:last-child) {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-right-radius: 0;\n }\n }\n\n &:not(:first-child) {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n // stylelint-disable-next-line property-blacklist\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n // stylelint-disable-next-line property-blacklist\n border-bottom-left-radius: 0;\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n orphans: 1;\n widows: 1;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n > .card {\n overflow: hidden;\n\n &:not(:first-of-type) {\n .card-header:first-child {\n @include border-radius(0);\n }\n\n &:not(:last-of-type) {\n border-bottom: 0;\n @include border-radius(0);\n }\n }\n\n &:first-of-type:not(:last-of-type) {\n border-bottom: 0;\n @include border-bottom-radius(0);\n }\n\n &:last-of-type {\n @include border-top-radius(0);\n }\n\n .card-header {\n margin-bottom: -$card-border-width;\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding-x;\n\n &::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding-x;\n color: $breadcrumb-divider-color;\n content: $breadcrumb-divider;\n }\n }\n\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n // without `<ul>`s. The `::before` pseudo-element generates an element\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n //\n // To trick IE into suppressing the underline, we give the pseudo-element an\n // underline and then immediately remove it.\n + .breadcrumb-item:hover::before {\n text-decoration: underline;\n }\n // stylelint-disable-next-line no-duplicate-selectors\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 2;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 1;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n @include font-size($badge-font-size);\n font-weight: $badge-font-weight;\n line-height: 1;\n color: $badge-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n color: $jumbotron-color;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: $close-font-size + $alert-padding-x * 2;\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","// Disable animation if transitions are disabled\n@if $enable-transitions {\n @keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n @include font-size($progress-font-size);\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n@if $enable-transitions {\n .progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n animation: none;\n }\n }\n }\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus {\n z-index: 1; // Place hover/focus items above their siblings for proper border styling\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -$list-group-border-width;\n color: $list-group-color;\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius($list-group-border-radius);\n }\n\n &:last-child {\n margin-bottom: 0;\n @include border-bottom-radius($list-group-border-radius);\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n pointer-events: none;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n}\n\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .list-group-horizontal#{$infix} {\n flex-direction: row;\n\n .list-group-item {\n margin-right: -$list-group-border-width;\n margin-bottom: 0;\n\n &:first-child {\n @include border-left-radius($list-group-border-radius);\n @include border-top-right-radius(0);\n }\n\n &:last-child {\n margin-right: 0;\n @include border-right-radius($list-group-border-radius);\n @include border-bottom-left-radius(0);\n }\n }\n }\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n .list-group-item {\n border-right: 0;\n border-left: 0;\n @include border-radius(0);\n\n &:last-child {\n margin-bottom: -$list-group-border-width;\n }\n }\n\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n\n &:last-child {\n .list-group-item:last-child {\n margin-bottom: 0;\n border-bottom: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n @include font-size($close-font-size);\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n // Override <a>'s hover style\n @include hover {\n color: $close-color;\n text-decoration: none;\n }\n\n &:not(:disabled):not(.disabled) {\n @include hover-focus {\n opacity: .75;\n }\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable-next-line selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\n// Future-proof disabling of clicks on `<a>` elements\n\n// stylelint-disable-next-line selector-no-qualifying-type\na.close.disabled {\n pointer-events: none;\n}\n",".toast {\n max-width: $toast-max-width;\n overflow: hidden; // cheap rounded corners on nested items\n @include font-size($toast-font-size);\n color: $toast-color;\n background-color: $toast-background-color;\n background-clip: padding-box;\n border: $toast-border-width solid $toast-border-color;\n box-shadow: $toast-box-shadow;\n backdrop-filter: blur(10px);\n opacity: 0;\n @include border-radius($toast-border-radius);\n\n &:not(:last-child) {\n margin-bottom: $toast-padding-x;\n }\n\n &.showing {\n opacity: 1;\n }\n\n &.show {\n display: block;\n opacity: 1;\n }\n\n &.hide {\n display: none;\n }\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: $toast-padding-y $toast-padding-x;\n color: $toast-header-color;\n background-color: $toast-header-background-color;\n background-clip: padding-box;\n border-bottom: $toast-border-width solid $toast-header-border-color;\n}\n\n.toast-body {\n padding: $toast-padding-x; // apply to both vertical and horizontal\n}\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n.modal-open {\n // Kill the scroll on the body\n overflow: hidden;\n\n .modal {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: $modal-fade-transform;\n }\n .modal.show & {\n transform: $modal-show-transform;\n }\n}\n\n.modal-dialog-scrollable {\n display: flex; // IE10/11\n max-height: calc(100% - #{$modal-dialog-margin * 2});\n\n .modal-content {\n max-height: calc(100vh - #{$modal-dialog-margin * 2}); // IE10/11\n overflow: hidden;\n }\n\n .modal-header,\n .modal-footer {\n flex-shrink: 0;\n }\n\n .modal-body {\n overflow-y: auto;\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - #{$modal-dialog-margin * 2});\n\n // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)\n &::before {\n display: block; // IE10\n height: calc(100vh - #{$modal-dialog-margin * 2});\n content: \"\";\n }\n\n // Ensure `.modal-body` shows scrollbar (IE10/11)\n &.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n\n .modal-content {\n max-height: none;\n }\n\n &::before {\n content: none;\n }\n }\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n color: $modal-content-color;\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n width: 100vw;\n height: 100vh;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-border-radius);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding-y) (-$modal-header-padding-x) (-$modal-header-padding-y) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when should there be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n @include border-bottom-radius($modal-content-border-radius);\n\n // Easily place margin between footer elements\n > :not(:first-child) { margin-left: .25rem; }\n > :not(:last-child) { margin-right: .25rem; }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-scrollable {\n max-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});\n\n .modal-content {\n max-height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});\n }\n }\n\n .modal-dialog-centered {\n min-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});\n\n &::before {\n height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});\n }\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg,\n .modal-xl {\n max-width: $modal-lg;\n }\n}\n\n@include media-breakpoint-up(xl) {\n .modal-xl { max-width: $modal-xl; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($tooltip-font-size);\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .tooltip-arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .tooltip-arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .tooltip-arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .tooltip-arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .tooltip-arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n @include font-size($popover-font-size);\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .popover-arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $border-radius-lg;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n > .popover-arrow {\n bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n\n &::before {\n bottom: 0;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n &::after {\n bottom: $popover-border-width;\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-top-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n > .popover-arrow {\n left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n left: 0;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n &::after {\n left: $popover-border-width;\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n border-right-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n > .popover-arrow {\n top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n\n &::before {\n top: 0;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n &::after {\n top: $popover-border-width;\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n border-bottom-color: $popover-arrow-color;\n }\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: -$popover-arrow-width / 2;\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n > .popover-arrow {\n right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n\n &::before {\n right: 0;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-outer-color;\n }\n\n &::after {\n right: $popover-border-width;\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n border-left-color: $popover-arrow-color;\n }\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n @include font-size($font-size-base);\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});\n @include border-top-radius($offset-border-width);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n// even when their scroll action started on a carousel, but for compatibility (with Firefox)\n// we're preventing all actions instead\n// 2. The .carousel-item-left and .carousel-item-right is used to indicate where\n// the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-left and .active.carousel-item-right is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n @include clearfix();\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n }\n\n .active.carousel-item-left,\n .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n @include transition(0s $carousel-transition-duration opacity);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n @include transition($carousel-control-transition);\n\n // Hover/focus state\n @include hover-focus {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: $carousel-control-hover-opacity;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: no-repeat 50% / 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: $carousel-control-prev-icon-bg;\n}\n.carousel-control-next-icon {\n background-image: $carousel-control-next-icon-bg;\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n cursor: pointer;\n background-color: $carousel-indicator-active-bg;\n background-clip: padding-box;\n // Use transparent borders to increase the hit area by 10px on top and bottom.\n border-top: $carousel-indicator-hit-area-height solid transparent;\n border-bottom: $carousel-indicator-hit-area-height solid transparent;\n opacity: .5;\n @include transition($carousel-indicator-transition);\n }\n\n .active {\n opacity: 1;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: (100% - $carousel-caption-width) / 2;\n bottom: 20px;\n left: (100% - $carousel-caption-width) / 2;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","//\n// Rotating border\n//\n\n@keyframes spinner-border {\n to { transform: rotate(360deg); }\n}\n\n.spinner-border {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n border: $spinner-border-width solid currentColor;\n border-right-color: transparent;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n border-width: $spinner-border-width-sm;\n}\n\n//\n// Growing circle\n//\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: $spinner-width;\n height: $spinner-height;\n vertical-align: text-bottom;\n background-color: currentColor;\n // stylelint-disable-next-line property-blacklist\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: $spinner-width-sm;\n height: $spinner-height-sm;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n .bg-#{$color} {\n background-color: $value !important;\n }\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable property-blacklist, declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded-sm {\n border-radius: $border-radius-sm !important;\n}\n\n.rounded {\n border-radius: $border-radius !important;\n}\n\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-lg {\n border-radius: $border-radius-lg !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: $rounded-pill !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $value in $displays {\n .d#{$infix}-#{$value} { display: $value !important; }\n }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n @each $value in $displays {\n .d-print-#{$value} { display: $value !important; }\n }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n@each $embed-responsive-aspect-ratio in $embed-responsive-aspect-ratios {\n $embed-responsive-aspect-ratio-x: nth($embed-responsive-aspect-ratio, 1);\n $embed-responsive-aspect-ratio-y: nth($embed-responsive-aspect-ratio, 2);\n\n .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {\n &::before {\n padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { float: left !important; }\n .float#{$infix}-right { float: right !important; }\n .float#{$infix}-none { float: none !important; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $value in $overflows {\n .overflow-#{$value} { overflow: $value !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n\n// Viewport additional helpers\n\n.min-vw-100 { min-width: 100vw !important; }\n.min-vh-100 { min-height: 100vh !important; }\n\n.vw-100 { width: 100vw !important; }\n.vh-100 { height: 100vh !important; }\n","//\n// Stretched link\n//\n\n.stretched-link {\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n // Just in case `pointer-events: none` is set on a parent\n pointer-events: auto;\n content: \"\";\n // IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color\n background-color: rgba(0, 0, 0, 0);\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)\n @each $size, $length in $spacers {\n @if $size != 0 {\n .m#{$infix}-n#{$size} { margin: -$length !important; }\n .mt#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-top: -$length !important;\n }\n .mr#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-right: -$length !important;\n }\n .mb#{$infix}-n#{$size},\n .my#{$infix}-n#{$size} {\n margin-bottom: -$length !important;\n }\n .ml#{$infix}-n#{$size},\n .mx#{$infix}-n#{$size} {\n margin-left: -$length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace !important; }\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-wrap { white-space: normal !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate; }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-lighter { font-weight: $font-weight-lighter !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-weight-bolder { font-weight: $font-weight-bolder !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-decoration-none { text-decoration: none !important; }\n\n.text-break {\n word-break: break-word !important; // IE & < Edge 18\n overflow-wrap: break-word !important;\n}\n\n// Reset\n\n.text-reset { color: inherit !important; }\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color) {\n #{$parent} {\n color: $color !important;\n }\n @if $emphasized-link-hover-darken-percentage != 0 {\n a#{$parent} {\n @include hover-focus {\n color: darken($color, $emphasized-link-hover-darken-percentage) !important;\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Visibility utilities\n//\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: $black !important; // Black prints faster\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid $black;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: $white !important;\n }\n }\n\n .table-bordered {\n th,\n td {\n border: 1px solid $gray-300 !important;\n }\n }\n\n .table-dark {\n color: inherit;\n\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $table-border-color;\n }\n }\n\n .table .thead-dark th {\n color: inherit;\n border-color: $table-border-color;\n }\n\n // Bootstrap specific changes end\n }\n}\n"]}
\ No newline at end of file diff --git a/dist/js/bootstrap.bundle.js b/dist/js/bootstrap.bundle.js index dfe46deef0..37fb8cba96 100644 --- a/dist/js/bootstrap.bundle.js +++ b/dist/js/bootstrap.bundle.js @@ -135,7 +135,9 @@ }; var triggerTransitionEnd = function triggerTransitionEnd(element) { - element.dispatchEvent(new Event(TRANSITION_END)); + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(TRANSITION_END, true, true); + element.dispatchEvent(evt); }; var isElement = function isElement(obj) { @@ -291,93 +293,145 @@ } }; - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.3.1): dom/polyfill.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - /* istanbul ignore next */ + /* istanbul ignore file */ + var _Element$prototype = Element.prototype, + matches = _Element$prototype.matches, + closest = _Element$prototype.closest; + var find = Element.prototype.querySelectorAll; + var findOne = Element.prototype.querySelector; - var Polyfill = function () { - // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached - var defaultPreventedPreservedOnDispatch = function () { - var e = new CustomEvent('Bootstrap', { - cancelable: true - }); - var element = document.createElement('div'); - element.addEventListener('Bootstrap', function () { - return null; - }); - e.preventDefault(); - element.dispatchEvent(e); - return e.defaultPrevented; - }(); + var createCustomEvent = function createCustomEvent(eventName, params) { + var cEvent = new CustomEvent(eventName, params); + return cEvent; + }; + + if (typeof window.CustomEvent !== 'function') { + createCustomEvent = function createCustomEvent(eventName, params) { + params = params || { + bubbles: false, + cancelable: false, + detail: null + }; + var evt = document.createEvent('CustomEvent'); + evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail); + return evt; + }; + } - var find = Element.prototype.querySelectorAll; - var findOne = Element.prototype.querySelector; - var scopeSelectorRegex = /:scope\b/; + var workingDefaultPrevented = function () { + var e = document.createEvent('CustomEvent'); + e.initEvent('Bootstrap', true, true); + e.preventDefault(); + return e.defaultPrevented; + }(); - var supportScopeQuery = function () { - var element = document.createElement('div'); + if (!workingDefaultPrevented) { + var origPreventDefault = Event.prototype.preventDefault; - try { - element.querySelectorAll(':scope *'); - } catch (error) { - return false; + Event.prototype.preventDefault = function () { + if (!this.cancelable) { + return; } - return true; - }(); + origPreventDefault.call(this); + Object.defineProperty(this, 'defaultPrevented', { + get: function get() { + return true; + }, + configurable: true + }); + }; + } // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached - if (!supportScopeQuery) { - find = function find(selector) { - if (!scopeSelectorRegex.test(selector)) { - return this.querySelectorAll(selector); - } - var hasId = Boolean(this.id); + var defaultPreventedPreservedOnDispatch = function () { + var e = createCustomEvent('Bootstrap', { + cancelable: true + }); + var element = document.createElement('div'); + element.addEventListener('Bootstrap', function () { + return null; + }); + e.preventDefault(); + element.dispatchEvent(e); + return e.defaultPrevented; + }(); - if (!hasId) { - this.id = getUID('scope'); - } + if (!matches) { + matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; + } - var nodeList = null; + if (!closest) { + closest = function closest(selector) { + var element = this; - try { - selector = selector.replace(scopeSelectorRegex, "#" + this.id); - nodeList = this.querySelectorAll(selector); - } finally { - if (!hasId) { - this.removeAttribute('id'); - } + do { + if (matches.call(element, selector)) { + return element; } - return nodeList; - }; + element = element.parentElement || element.parentNode; + } while (element !== null && element.nodeType === 1); - findOne = function findOne(selector) { - if (!scopeSelectorRegex.test(selector)) { - return this.querySelector(selector); - } + return null; + }; + } - var matches = find.call(this, selector); + var scopeSelectorRegex = /:scope\b/; - if (typeof matches[0] !== 'undefined') { - return matches[0]; - } + var supportScopeQuery = function () { + var element = document.createElement('div'); - return null; - }; + try { + element.querySelectorAll(':scope *'); + } catch (error) { + return false; } - return { - defaultPreventedPreservedOnDispatch: defaultPreventedPreservedOnDispatch, - find: find, - findOne: findOne - }; + return true; }(); + if (!supportScopeQuery) { + find = function find(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelectorAll(selector); + } + + var hasId = Boolean(this.id); + + if (!hasId) { + this.id = getUID('scope'); + } + + var nodeList = null; + + try { + selector = selector.replace(scopeSelectorRegex, "#" + this.id); + nodeList = this.querySelectorAll(selector); + } finally { + if (!hasId) { + this.removeAttribute('id'); + } + } + + return nodeList; + }; + + findOne = function findOne(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelector(selector); + } + + var matches = find.call(this, selector); + + if (typeof matches[0] !== 'undefined') { + return matches[0]; + } + + return null; + }; + } + /** * -------------------------------------------------------------------------- * Bootstrap (v4.3.1): dom/eventHandler.js @@ -468,10 +522,8 @@ delegationSelector = null; } - var uidList = Object.keys(events); - - for (var i = 0; i < uidList.length; i++) { - var uid = uidList[i]; + for (var _i = 0, _Object$keys = Object.keys(events); _i < _Object$keys.length; _i++) { + var uid = _Object$keys[_i]; var event = events[uid]; if (event.originalHandler === handler && event.delegationSelector === delegationSelector) { @@ -630,7 +682,7 @@ evt = document.createEvent('HTMLEvents'); evt.initEvent(typeEvent, bubbles, true); } else { - evt = new CustomEvent(event, { + evt = createCustomEvent(event, { bubbles: bubbles, cancelable: true }); @@ -650,7 +702,7 @@ if (defaultPrevented) { evt.preventDefault(); - if (!Polyfill.defaultPreventedPreservedOnDispatch) { + if (!defaultPreventedPreservedOnDispatch) { Object.defineProperty(evt, 'defaultPrevented', { get: function get() { return true; @@ -683,14 +735,12 @@ * ------------------------------------------------------------------------ */ - var findFn = Polyfill.find, - _findOne = Polyfill.findOne; var NODE_TEXT = 3; var SelectorEngine = { - matches: function matches(element, selector) { - return element.matches(selector); + matches: function matches$1(element, selector) { + return matches.call(element, selector); }, - find: function find(selector, element) { + find: function find$1(selector, element) { if (element === void 0) { element = document.documentElement; } @@ -699,9 +749,9 @@ return null; } - return findFn.call(element, selector); + return find.call(element, selector); }, - findOne: function findOne(selector, element) { + findOne: function findOne$1(selector, element) { if (element === void 0) { element = document.documentElement; } @@ -710,7 +760,7 @@ return null; } - return _findOne.call(element, selector); + return findOne.call(element, selector); }, children: function children(element, selector) { var _this = this; @@ -742,12 +792,12 @@ return parents; }, - closest: function closest(element, selector) { + closest: function closest$1(element, selector) { if (typeof selector !== 'string') { return null; } - return element.closest(selector); + return closest.call(element, selector); }, prev: function prev(element, selector) { if (typeof selector !== 'string') { @@ -1096,11 +1146,17 @@ }); EventHandler.on(document, Event$2.FOCUS_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) { var button = SelectorEngine.closest(event.target, Selector$1.BUTTON); - button.classList.add(ClassName$1.FOCUS); + + if (button) { + button.classList.add(ClassName$1.FOCUS); + } }); EventHandler.on(document, Event$2.BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) { var button = SelectorEngine.closest(event.target, Selector$1.BUTTON); - button.classList.remove(ClassName$1.FOCUS); + + if (button) { + button.classList.remove(ClassName$1.FOCUS); + } }); /** * ------------------------------------------------------------------------ @@ -1419,7 +1475,8 @@ return; } - var direction = absDeltax / this.touchDeltaX; // swipe left + var direction = absDeltax / this.touchDeltaX; + this.touchDeltaX = 0; // swipe left if (direction > 0) { this.prev(); @@ -2246,7 +2303,7 @@ /**! * @fileOverview Kickass library to create and place poppers near their reference elements. - * @version 1.14.7 + * @version 1.15.0 * @license * Copyright (c) 2016 Federico Zivolo and contributors * @@ -3071,7 +3128,7 @@ * @argument value * @returns index or -1 */ - function find(arr, check) { + function find$1(arr, check) { // use native find if supported if (Array.prototype.find) { return arr.find(check); @@ -3099,7 +3156,7 @@ } // use `find` + `indexOf` if `findIndex` isn't supported - var match = find(arr, function (obj) { + var match = find$1(arr, function (obj) { return obj[prop] === value; }); return arr.indexOf(match); @@ -3516,7 +3573,7 @@ // Remove this legacy support in Popper.js v2 - var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { + var legacyGpuAccelerationOption = find$1(data.instance.modifiers, function (modifier) { return modifier.name === 'applyStyle'; }).gpuAcceleration; if (legacyGpuAccelerationOption !== undefined) { @@ -3611,7 +3668,7 @@ * @returns {Boolean} */ function isModifierRequired(modifiers, requestingName, requestedName) { - var requesting = find(modifiers, function (_ref) { + var requesting = find$1(modifiers, function (_ref) { var name = _ref.name; return name === requestingName; }); @@ -3850,7 +3907,14 @@ // flip the variation if required var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; - var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); + + // flips variation if reference element overflows boundaries + var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); + + // flips variation if popper content overflows boundaries + var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop); + + var flippedVariation = flippedVariationByRef || flippedVariationByContent; if (overlapsRef || overflowsBoundaries || flippedVariation) { // this boolean to detect any flip loop @@ -3985,7 +4049,7 @@ // Detect if the offset string contains a pair of values or a single one // they could be separated by comma or space - var divider = fragments.indexOf(find(fragments, function (frag) { + var divider = fragments.indexOf(find$1(fragments, function (frag) { return frag.search(/,|\s/) !== -1; })); @@ -4196,7 +4260,7 @@ } var refRect = data.offsets.reference; - var bound = find(data.instance.modifiers, function (modifier) { + var bound = find$1(data.instance.modifiers, function (modifier) { return modifier.name === 'preventOverflow'; }).boundaries; @@ -4457,7 +4521,23 @@ * The popper will never be placed outside of the defined boundaries * (except if `keepTogether` is enabled) */ - boundariesElement: 'viewport' + boundariesElement: 'viewport', + /** + * @prop {Boolean} flipVariations=false + * The popper will switch placement variation between `-start` and `-end` when + * the reference element overlaps its boundaries. + * + * The original placement should have a set variation. + */ + flipVariations: false, + /** + * @prop {Boolean} flipVariationsByContent=false + * The popper will switch placement variation between `-start` and `-end` when + * the popper element overlaps its reference boundaries. + * + * The original placement should have a set variation. + */ + flipVariationsByContent: false }, /** @@ -4674,8 +4754,8 @@ /** * Creates a new Popper.js instance. * @class Popper - * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper - * @param {HTMLElement} popper - The HTML element used as the popper + * @param {Element|referenceObject} reference - The reference element used to position the popper + * @param {Element} popper - The HTML / XML element used as the popper * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) * @return {Object} instance - The generated Popper.js instance */ @@ -7665,7 +7745,9 @@ EventHandler.trigger(_this._element, Event$b.SHOWN); if (_this._config.autohide) { - _this.hide(); + _this._timeout = setTimeout(function () { + _this.hide(); + }, _this._config.delay); } }; @@ -7682,7 +7764,7 @@ } }; - _proto.hide = function hide(withoutTimeout) { + _proto.hide = function hide() { var _this2 = this; if (!this._element.classList.contains(ClassName$a.SHOW)) { @@ -7691,12 +7773,20 @@ EventHandler.trigger(this._element, Event$b.HIDE); - if (withoutTimeout) { - this._close(); + var complete = function complete() { + _this2._element.classList.add(ClassName$a.HIDE); + + EventHandler.trigger(_this2._element, Event$b.HIDDEN); + }; + + this._element.classList.remove(ClassName$a.SHOW); + + if (this._config.animation) { + var transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, TRANSITION_END, complete); + emulateTransitionEnd(this._element, transitionDuration); } else { - this._timeout = setTimeout(function () { - _this2._close(); - }, this._config.delay); + complete(); } }; @@ -7725,28 +7815,8 @@ var _this3 = this; EventHandler.on(this._element, Event$b.CLICK_DISMISS, Selector$a.DATA_DISMISS, function () { - return _this3.hide(true); + return _this3.hide(); }); - }; - - _proto._close = function _close() { - var _this4 = this; - - var complete = function complete() { - _this4._element.classList.add(ClassName$a.HIDE); - - EventHandler.trigger(_this4._element, Event$b.HIDDEN); - }; - - this._element.classList.remove(ClassName$a.SHOW); - - if (this._config.animation) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); - emulateTransitionEnd(this._element, transitionDuration); - } else { - complete(); - } } // Static ; diff --git a/dist/js/bootstrap.bundle.js.map b/dist/js/bootstrap.bundle.js.map index 27d752d493..4404f34cdf 100644 --- a/dist/js/bootstrap.bundle.js.map +++ b/dist/js/bootstrap.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n })()\n\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n }\n\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!Polyfill.defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.7\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","matches","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","NODE_TEXT","SelectorEngine","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast","withoutTimeout","_close"],"mappings":"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AO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;;EAErB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;;EAEtB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;;EAErB;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;;EAExB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;;E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"}
\ No newline at end of file +{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n for (const uid of Object.keys(events)) {\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.15.0\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast"],"mappings":"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;EACA;EACA;EACA;EACA,IAAI,SAAS,GAAG;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,MAAM,EAAE;EACV;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,MAAM;EACd;EACA;EACA;EACA,IAAI,MAAM,EAAE,CAAC;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,cAAc,EAAE,KAAK;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,uBAAuB,EAAE,KAAK;EAClC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;;EAErB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;;EAEtB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;;EAErB;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;;EAExB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;;EAElC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;;EAElC;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,SAAS;EACtB,CAAC,CAAC;;EAEF;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;;EAEA;EACA;EACA,IAAI,MAAM,GAAG,YAAY;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE;EACrC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;;EAErB,IAAI,IAAI,OAAO,GA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"}
\ No newline at end of file diff --git a/dist/js/bootstrap.bundle.min.js b/dist/js/bootstrap.bundle.min.js index a6112f4792..f5e6440ae3 100644 --- a/dist/js/bootstrap.bundle.min.js +++ b/dist/js/bootstrap.bundle.min.js @@ -3,5 +3,5 @@ * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).bootstrap=e()}(this,function(){"use strict";function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function e(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}function n(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{},o=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(i).filter(function(t){return Object.getOwnPropertyDescriptor(i,t).enumerable}))),o.forEach(function(e){n(t,e,i[e])})}return t}var o,r,s="transitionend",a=window.jQuery,l=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},c=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},f=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),r=parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},u=function(t){t.dispatchEvent(new Event(s))},h=function(t){return(t[0]||t).nodeType},d=function(t,e){var n=!1,i=e+5;t.addEventListener(s,function e(){n=!0,t.removeEventListener(s,e)}),setTimeout(function(){n||u(t)},i)},p=function(t,e,n){Object.keys(n).forEach(function(i){var o,r=n[i],s=e[i],a=s&&h(s)?"element":(o=s,{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')})},g=function(t){return t?[].slice.call(t):[]},m=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},_=function(){return function(){}},v=function(t){return t.offsetHeight},b=(o={},r=1,{set:function(t,e,n){void 0===t.key&&(t.key={key:e,id:r},r++),o[t.key.id]=n},get:function(t,e){if(!t||void 0===t.key)return null;var n=t.key;return n.key===e?o[n.id]:null},delete:function(t,e){if(void 0!==t.key){var n=t.key;n.key===e&&(delete o[n.id],delete t.key)}}}),E={setData:function(t,e,n){b.set(t,e,n)},getData:function(t,e){return b.get(t,e)},removeData:function(t,e){b.delete(t,e)}},y=function(){var t,e,n=(t=new CustomEvent("Bootstrap",{cancelable:!0}),(e=document.createElement("div")).addEventListener("Bootstrap",function(){return null}),t.preventDefault(),e.dispatchEvent(t),t.defaultPrevented),i=Element.prototype.querySelectorAll,o=Element.prototype.querySelector,r=/:scope\b/;return function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0}()||(i=function(t){if(!r.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=l("scope"));var n=null;try{t=t.replace(r,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},o=function(t){if(!r.test(t))return this.querySelector(t);var e=i.call(this,t);return void 0!==e[0]?e[0]:null}),{defaultPreventedPreservedOnDispatch:n,find:i,findOne:o}}(),w=/[^.]*(?=\..*)\.|.*/,D=/\..*/,T=/^key/,I=/::\d+$/,A={},O=1,L={mouseenter:"mouseover",mouseleave:"mouseout"},S=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function C(t,e){return e&&e+"::"+O++||t.uidEvent||O++}function N(t){var e=C(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e){null===t.which&&T.test(t.type)&&(t.which=null===t.charCode?t.keyCode:t.charCode),t.delegateTarget=e}function P(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0;o<i.length;o++){var r=i[o],s=t[r];if(s.originalHandler===e&&s.delegationSelector===n)return t[r]}return null}function x(t,e,n){var i="string"==typeof e,o=i?n:e,r=t.replace(D,""),s=L[r];return s&&(r=s),S.indexOf(r)>-1||(r=t),[i,o,r]}function H(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var r=x(e,n,i),s=r[0],a=r[1],l=r[2],c=N(t),f=c[l]||(c[l]={}),u=P(f,a,s?n:null);if(u)u.oneOff=u.oneOff&&o;else{var h=C(a,e.replace(w,"")),d=s?function(t,e,n){return function i(o){for(var r=t.querySelectorAll(e),s=o.target;s&&s!==this;s=s.parentNode)for(var a=r.length;a--;)if(r[a]===s)return k(o,s),i.oneOff&&j.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return k(i,t),n.oneOff&&j.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=s?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=h,f[h]=d,t.addEventListener(l,d,s)}}}function M(t,e,n,i,o){var r=P(e[n],i,o);null!==r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}var j={on:function(t,e,n,i){H(t,e,n,i,!1)},one:function(t,e,n,i){H(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=x(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=N(t),f="."===e.charAt(0);if(void 0===s){f&&Object.keys(c).forEach(function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach(function(r){if(r.indexOf(i)>-1){var s=o[r];M(t,e,n,s.originalHandler,s.delegationSelector)}})}(t,c,n,e.substr(1))});var u=c[a]||{};Object.keys(u).forEach(function(n){var i=n.replace(I,"");if(!l||e.indexOf(i)>-1){var o=u[n];M(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;M(t,c,a,s,r?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(D,""),r=e!==o,s=S.indexOf(o)>-1,l=!0,c=!0,f=!1,u=null;return r&&void 0!==a&&(i=a.Event(e,n),a(t).trigger(i),l=!i.isPropagationStopped(),c=!i.isImmediatePropagationStopped(),f=i.isDefaultPrevented()),s?(u=document.createEvent("HTMLEvents")).initEvent(o,l,!0):u=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})}),f&&(u.preventDefault(),y.defaultPreventedPreservedOnDispatch||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),c&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},R=y.find,W=y.findOne,F={matches:function(t,e){return t.matches(e)},find:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:R.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:W.call(e,t)},children:function(t,e){var n=this;if("string"!=typeof e)return null;var i=g(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return"string"!=typeof e?null:t.closest(e)},prev:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},U="bs.alert",B="."+U,K={CLOSE:"close"+B,CLOSED:"closed"+B,CLICK_DATA_API:"click"+B+".data-api"},V="alert",Y="fade",Q="show",G=function(){function t(t){this._element=t,this._element&&E.setData(t,U,this)}var n=t.prototype;return n.close=function(t){var e=this._element;t&&(e=this._getRootElement(t));var n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},n.dispose=function(){E.removeData(this._element,U),this._element=null},n._getRootElement=function(t){var e=c(t),n=!1;return e&&(n=F.findOne(e)),n||(n=F.closest(t,"."+V)),n},n._triggerCloseEvent=function(t){return j.trigger(t,K.CLOSE)},n._removeElement=function(t){var e=this;if(t.classList.remove(Q),t.classList.contains(Y)){var n=f(t);j.one(t,s,function(n){return e._destroyElement(t,n)}),d(t,n)}else this._destroyElement(t)},n._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),j.trigger(t,K.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,U);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return E.getData(t,U)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(j.on(document,K.CLICK_DATA_API,'[data-dismiss="alert"]',G._handleDismiss(new G)),void 0!==a){var q=a.fn.alert;a.fn.alert=G._jQueryInterface,a.fn.alert.Constructor=G,a.fn.alert.noConflict=function(){return a.fn.alert=q,G._jQueryInterface}}var X="bs.button",z="."+X,Z="active",$="btn",J="focus",tt='[data-toggle^="button"]',et='[data-toggle="buttons"]',nt='input:not([type="hidden"])',it=".active",ot=".btn",rt={CLICK_DATA_API:"click"+z+".data-api",FOCUS_DATA_API:"focus"+z+".data-api",BLUR_DATA_API:"blur"+z+".data-api"},st=function(){function t(t){this._element=t,E.setData(t,X,this)}var n=t.prototype;return n.toggle=function(){var t=!0,e=!0,n=F.closest(this._element,et);if(n){var i=F.findOne(nt,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(Z))t=!1;else{var o=F.findOne(it,n);o&&o.classList.remove(Z)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(Z),j.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(Z)),t&&this._element.classList.toggle(Z)},n.dispose=function(){E.removeData(this._element,X),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,X);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return E.getData(t,X)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(j.on(document,rt.CLICK_DATA_API,tt,function(t){t.preventDefault();var e=t.target;e.classList.contains($)||(e=F.closest(e,ot));var n=E.getData(e,X);n||(n=new st(e),E.setData(e,X,n)),n.toggle()}),j.on(document,rt.FOCUS_DATA_API,tt,function(t){F.closest(t.target,ot).classList.add(J)}),j.on(document,rt.BLUR_DATA_API,tt,function(t){F.closest(t.target,ot).classList.remove(J)}),void 0!==a){var at=a.fn.button;a.fn.button=st._jQueryInterface,a.fn.button.Constructor=st,a.fn.button.noConflict=function(){return a.fn.button=at,st._jQueryInterface}}function lt(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function ct(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var ft={setDataAttribute:function(t,e,n){t.setAttribute("data-"+ct(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+ct(e))},getDataAttributes:function(t){if(!t)return{};var e=i({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=lt(e[t])}),e},getDataAttribute:function(t,e){return lt(t.getAttribute("data-"+ct(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},ut="carousel",ht="bs.carousel",dt="."+ht,pt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},gt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},mt="next",_t="prev",vt="left",bt="right",Et={SLIDE:"slide"+dt,SLID:"slid"+dt,KEYDOWN:"keydown"+dt,MOUSEENTER:"mouseenter"+dt,MOUSELEAVE:"mouseleave"+dt,TOUCHSTART:"touchstart"+dt,TOUCHMOVE:"touchmove"+dt,TOUCHEND:"touchend"+dt,POINTERDOWN:"pointerdown"+dt,POINTERUP:"pointerup"+dt,DRAG_START:"dragstart"+dt,LOAD_DATA_API:"load"+dt+".data-api",CLICK_DATA_API:"click"+dt+".data-api"},yt="carousel",wt="active",Dt="slide",Tt="carousel-item-right",It="carousel-item-left",At="carousel-item-next",Ot="carousel-item-prev",Lt="pointer-event",St={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},Ct={TOUCH:"touch",PEN:"pen"},Nt=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=F.findOne(St.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),E.setData(t,ht,this)}var n=t.prototype;return n.next=function(){this._isSliding||this._slide(mt)},n.nextWhenVisible=function(){!document.hidden&&m(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide(_t)},n.pause=function(t){t||(this._isPaused=!0),F.findOne(St.NEXT_PREV,this._element)&&(u(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&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var e=this;this._activeElement=F.findOne(St.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)j.one(this._element,Et.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?mt:_t;this._slide(i,this._items[t])}},n.dispose=function(){j.off(this._element,dt),E.removeData(this._element,ht),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=i({},pt,t),p(ut,t,gt),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;e>0&&this.prev(),e<0&&this.next()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&j.on(this._element,Et.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(j.on(this._element,Et.MOUSEENTER,function(e){return t.pause(e)}),j.on(this._element,Et.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&Ct[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&Ct[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.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))};g(F.find(St.ITEM_IMG,this._element)).forEach(function(t){j.on(t,Et.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(j.on(this._element,Et.POINTERDOWN,function(t){return e(t)}),j.on(this._element,Et.POINTERUP,function(t){return n(t)}),this._element.classList.add(Lt)):(j.on(this._element,Et.TOUCHSTART,function(t){return e(t)}),j.on(this._element,Et.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),j.on(this._element,Et.TOUCHEND,function(t){return n(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?g(F.find(St.ITEM,t.parentNode)):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n=t===mt,i=t===_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+(t===_t?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},n._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(F.findOne(St.ACTIVE_ITEM,this._element));return j.trigger(this._element,Et.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=F.find(St.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(wt);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(wt)}},n._slide=function(t,e){var n,i,o,r=this,a=F.findOne(St.ACTIVE_ITEM,this._element),l=this._getItemIndex(a),c=e||a&&this._getItemByDirection(t,a),u=this._getItemIndex(c),h=Boolean(this._interval);if(t===mt?(n=It,i=At,o=vt):(n=Tt,i=Ot,o=bt),c&&c.classList.contains(wt))this._isSliding=!1;else if(!this._triggerSlideEvent(c,o).defaultPrevented&&a&&c){if(this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(c),this._element.classList.contains(Dt)){c.classList.add(i),v(c),a.classList.add(n),c.classList.add(n);var p=parseInt(c.getAttribute("data-interval"),10);p?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=p):this._config.interval=this._config.defaultInterval||this._config.interval;var g=f(a);j.one(a,s,function(){c.classList.remove(n),c.classList.remove(i),c.classList.add(wt),a.classList.remove(wt),a.classList.remove(i),a.classList.remove(n),r._isSliding=!1,setTimeout(function(){j.trigger(r._element,Et.SLID,{relatedTarget:c,direction:o,from:l,to:u})},0)}),d(a,g)}else a.classList.remove(wt),c.classList.add(wt),this._isSliding=!1,j.trigger(this._element,Et.SLID,{relatedTarget:c,direction:o,from:l,to:u});h&&this.cycle()}},t._carouselInterface=function(e,n){var o=E.getData(e,ht),r=i({},pt,ft.getDataAttributes(e));"object"==typeof n&&(r=i({},r,n));var s="string"==typeof n?n:r.slide;if(o||(o=new t(e,r)),"number"==typeof n)o.to(n);else if("string"==typeof s){if(void 0===o[s])throw new TypeError('No method named "'+s+'"');o[s]()}else r.interval&&r.ride&&(o.pause(),o.cycle())},t._jQueryInterface=function(e){return this.each(function(){t._carouselInterface(this,e)})},t._dataApiClickHandler=function(e){var n=c(this);if(n){var o=F.findOne(n);if(o&&o.classList.contains(yt)){var r=i({},ft.getDataAttributes(o),ft.getDataAttributes(this)),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),t._carouselInterface(o,r),s&&E.getData(o,ht).to(s),e.preventDefault()}}},t._getInstance=function(t){return E.getData(t,ht)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return pt}}]),t}();if(j.on(document,Et.CLICK_DATA_API,St.DATA_SLIDE,Nt._dataApiClickHandler),j.on(window,Et.LOAD_DATA_API,function(){for(var t=g(F.find(St.DATA_RIDE)),e=0,n=t.length;e<n;e++)Nt._carouselInterface(t[e],E.getData(t[e],ht))}),void 0!==a){var kt=a.fn[ut];a.fn[ut]=Nt._jQueryInterface,a.fn[ut].Constructor=Nt,a.fn[ut].noConflict=function(){return a.fn[ut]=kt,Nt._jQueryInterface}}var Pt="collapse",xt="bs.collapse",Ht="."+xt,Mt={toggle:!0,parent:""},jt={toggle:"boolean",parent:"(string|element)"},Rt={SHOW:"show"+Ht,SHOWN:"shown"+Ht,HIDE:"hide"+Ht,HIDDEN:"hidden"+Ht,CLICK_DATA_API:"click"+Ht+".data-api"},Wt="show",Ft="collapse",Ut="collapsing",Bt="collapsed",Kt="width",Vt="height",Yt={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},Qt=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=g(F.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=g(F.find(Yt.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var r=n[i],s=c(r),a=g(F.find(s)).filter(function(e){return e===t});null!==s&&a.length&&(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(),E.setData(t,xt,this)}var n=t.prototype;return n.toggle=function(){this._element.classList.contains(Wt)?this.hide():this.show()},n.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Wt)){var n,i;this._parent&&0===(n=g(F.find(Yt.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(Ft)})).length&&(n=null);var o=F.findOne(this._selector);if(n){var r=n.filter(function(t){return o!==t});if((i=r[0]?E.getData(r[0],xt):null)&&i._isTransitioning)return}if(!j.trigger(this._element,Rt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||E.setData(e,xt,null)});var a=this._getDimension();this._element.classList.remove(Ft),this._element.classList.add(Ut),this._element.style[a]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(Bt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var l="scroll"+(a[0].toUpperCase()+a.slice(1)),c=f(this._element);j.one(this._element,s,function(){e._element.classList.remove(Ut),e._element.classList.add(Ft),e._element.classList.add(Wt),e._element.style[a]="",e.setTransitioning(!1),j.trigger(e._element,Rt.SHOWN)}),d(this._element,c),this._element.style[a]=this._element[l]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Wt)&&!j.trigger(this._element,Rt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",v(this._element),this._element.classList.add(Ut),this._element.classList.remove(Ft),this._element.classList.remove(Wt);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=c(o);if(null!==r)F.findOne(r).classList.contains(Wt)||(o.classList.add(Bt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var a=f(this._element);j.one(this._element,s,function(){t.setTransitioning(!1),t._element.classList.remove(Ut),t._element.classList.add(Ft),j.trigger(t._element,Rt.HIDDEN)}),d(this._element,a)}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){E.removeData(this._element,xt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=i({},Mt,t)).toggle=Boolean(t.toggle),p(Pt,t,jt),t},n._getDimension=function(){return this._element.classList.contains(Kt)?Kt:Vt},n._getParent=function(){var e=this,n=this._config.parent;h(n)?void 0===n.jquery&&void 0===n[0]||(n=n[0]):n=F.findOne(n);var i='[data-toggle="collapse"][data-parent="'+n+'"]';return g(F.find(i,n)).forEach(function(n){e._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])}),n},n._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Wt);e.length&&e.forEach(function(t){n?t.classList.remove(Bt):t.classList.add(Bt),t.setAttribute("aria-expanded",n)})}},t._getTargetFromElement=function(t){var e=c(t);return e?F.findOne(e):null},t._collapseInterface=function(e,n){var o=E.getData(e,xt),r=i({},Mt,ft.getDataAttributes(e),"object"==typeof n&&n?n:{});if(!o&&r.toggle&&/show|hide/.test(n)&&(r.toggle=!1),o||(o=new t(e,r)),"string"==typeof n){if(void 0===o[n])throw new TypeError('No method named "'+n+'"');o[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._collapseInterface(this,e)})},t._getInstance=function(t){return E.getData(t,xt)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Mt}}]),t}();if(j.on(document,Rt.CLICK_DATA_API,Yt.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=ft.getDataAttributes(this),n=c(this);g(F.find(n)).forEach(function(t){var n,i=E.getData(t,xt);i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,Qt._collapseInterface(t,n)})}),void 0!==a){var Gt=a.fn[Pt];a.fn[Pt]=Qt._jQueryInterface,a.fn[Pt].Constructor=Qt,a.fn[Pt].noConflict=function(){return a.fn[Pt]=Gt,Qt._jQueryInterface}}for(var qt="undefined"!=typeof window&&"undefined"!=typeof document,Xt=["Edge","Trident","Firefox"],zt=0,Zt=0;Zt<Xt.length;Zt+=1)if(qt&&navigator.userAgent.indexOf(Xt[Zt])>=0){zt=1;break}var $t=qt&&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()},zt))}};function Jt(t){return t&&"[object Function]"==={}.toString.call(t)}function te(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function ee(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function ne(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=te(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:ne(ee(t))}var ie=qt&&!(!window.MSInputMethodContext||!document.documentMode),oe=qt&&/MSIE 10/.test(navigator.userAgent);function re(t){return 11===t?ie:10===t?oe:ie||oe}function se(t){if(!t)return document.documentElement;for(var e=re(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"===te(n,"position")?se(n):n:t?t.ownerDocument.documentElement:document.documentElement}function ae(t){return null!==t.parentNode?ae(t.parentNode):t}function le(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&&se(s.firstElementChild)!==s?se(l):l;var c=ae(t);return c.host?le(c.host,e):le(t,ae(e).host)}function ce(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function fe(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function ue(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],re(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function he(t){var e=t.body,n=t.documentElement,i=re(10)&&getComputedStyle(n);return{height:ue("Height",e,n,i),width:ue("Width",e,n,i)}}var de=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},pe=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),ge=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},me=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function _e(t){return me({},t,{right:t.left+t.width,bottom:t.top+t.height})}function ve(t){var e={};try{if(re(10)){e=t.getBoundingClientRect();var n=ce(t,"top"),i=ce(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?he(t.ownerDocument):{},s=r.width||t.clientWidth||o.right-o.left,a=r.height||t.clientHeight||o.bottom-o.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var f=te(t);l-=fe(f,"x"),c-=fe(f,"y"),o.width-=l,o.height-=c}return _e(o)}function be(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=re(10),o="HTML"===e.nodeName,r=ve(t),s=ve(e),a=ne(t),l=te(e),c=parseFloat(l.borderTopWidth,10),f=parseFloat(l.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var u=_e({top:r.top-s.top-c,left:r.left-s.left-f,width:r.width,height:r.height});if(u.marginTop=0,u.marginLeft=0,!i&&o){var h=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);u.top-=c-h,u.bottom-=c-h,u.left-=f-d,u.right-=f-d,u.marginTop=h,u.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=ce(e,"top"),o=ce(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(u,e)),u}function Ee(t){if(!t||!t.parentElement||re())return document.documentElement;for(var e=t.parentElement;e&&"none"===te(e,"transform");)e=e.parentElement;return e||document.documentElement}function ye(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Ee(t):le(t,e);if("viewport"===i)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=be(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:ce(n),a=e?0:ce(n,"left");return _e({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r})}(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=ne(ee(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=be(a,s,o);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===te(e,"position"))return!0;var i=ee(e);return!!i&&t(i)}(s))r=l;else{var c=he(t.ownerDocument),f=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=f+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}var h="number"==typeof(n=n||0);return r.left+=h?n:n.left||0,r.top+=h?n:n.top||0,r.right-=h?n:n.right||0,r.bottom-=h?n:n.bottom||0,r}function we(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=ye(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 me({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),f=c.length>0?c[0].key:l[0].key,u=t.split("-")[1];return f+(u?"-"+u:"")}function De(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return be(n,i?Ee(e):le(e,n),i)}function Te(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 Ie(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 Ae(t,e,n){n=n.split("-")[0];var i=Te(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[Ie(a)],o}function Oe(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function Le(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=Oe(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&&Jt(n)&&(e.offsets.popper=_e(e.offsets.popper),e.offsets.reference=_e(e.offsets.reference),e=n(e,t))}),e}function Se(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function Ce(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if(void 0!==document.body.style[r])return r}return null}function Ne(t){var e=t.ownerDocument;return e?e.defaultView:window}function ke(t,e,n,i){n.updateBound=i,Ne(t).addEventListener("resize",n.updateBound,{passive:!0});var o=ne(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),r||t(ne(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function Pe(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,Ne(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function xe(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function He(t,e){Object.keys(e).forEach(function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&xe(e[n])&&(i="px"),t.style[n]=e[n]+i})}var Me=qt&&/Firefox/i.test(navigator.userAgent);function je(t,e,n){var i=Oe(t,function(t){return t.name===e}),o=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!o){var r="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var Re=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],We=Re.slice(3);function Fe(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=We.indexOf(t),i=We.slice(n+1).concat(We.slice(0,n));return e?i.reverse():i}var Ue={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function Be(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(Oe(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 _e(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){xe(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))})}),o}var Ke={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",f={start:ge({},l,r[l]),end:ge({},l,r[l]+r[c]-s[c])};t.offsets.popper=me({},s,f[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=xe(+n)?[+n,0]:Be(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||se(t.instance.popper);t.instance.reference===n&&(n=se(n));var i=Ce("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=ye(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,f=t.offsets.popper,u={primary:function(t){var n=f[t];return f[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(f[t],l[t])),ge({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=f[n];return f[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(f[n],l[t]-("right"===t?f.width:f.height))),ge({},n,i)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";f=me({},f,u[e](t))}),t.offsets.popper=f,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[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!je(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,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",f=l?"Top":"Left",u=f.toLowerCase(),h=l?"left":"top",d=l?"bottom":"right",p=Te(i)[c];a[d]-p<s[u]&&(t.offsets.popper[u]-=s[u]-(a[d]-p)),a[u]+p>s[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=_e(t.offsets.popper);var g=a[u]+a[c]/2-p/2,m=te(t.instance.popper),_=parseFloat(m["margin"+f],10),v=parseFloat(m["border"+f+"Width"],10),b=g-t.offsets.popper[u]-_-v;return b=Math.max(Math.min(s[c]-p,b),0),t.arrowElement=i,t.offsets.arrow=(ge(n={},u,Math.round(b)),ge(n,h,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(Se(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=ye(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Ie(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case Ue.FLIP:s=[i,o];break;case Ue.CLOCKWISE:s=Fe(i);break;case Ue.COUNTERCLOCKWISE:s=Fe(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=Ie(i);var c=t.offsets.popper,f=t.offsets.reference,u=Math.floor,h="left"===i&&u(c.right)>u(f.left)||"right"===i&&u(c.left)<u(f.right)||"top"===i&&u(c.bottom)>u(f.top)||"bottom"===i&&u(c.top)<u(f.bottom),d=u(c.left)<u(n.left),p=u(c.right)>u(n.right),g=u(c.top)<u(n.top),m=u(c.bottom)>u(n.bottom),_="left"===i&&d||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,v=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(v&&"start"===r&&d||v&&"end"===r&&p||!v&&"start"===r&&g||!v&&"end"===r&&m);(h||_||b)&&(t.flipped=!0,(h||_)&&(i=s[l+1]),b&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=me({},t.offsets.popper,Ae(t.instance.popper,t.offsets.reference,t.placement)),t=Le(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport"},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=Ie(e),t.offsets.popper=_e(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!je(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Oe(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=Oe(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==r?r:e.gpuAcceleration,a=se(t.instance.popper),l=ve(a),c={position:o.position},f=function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),c=r(i.width),f=-1!==["left","right"].indexOf(t.placement),u=-1!==t.placement.indexOf("-"),h=e?f||u||l%2==c%2?r:s:a,d=e?r:a;return{left:h(l%2==1&&c%2==1&&!u&&e?i.left-1:i.left),top:d(i.top),bottom:d(i.bottom),right:h(i.right)}}(t,window.devicePixelRatio<2||!Me),u="bottom"===n?"top":"bottom",h="right"===i?"left":"right",d=Ce("transform"),p=void 0,g=void 0;if(g="bottom"===u?"HTML"===a.nodeName?-a.clientHeight+f.bottom:-l.height+f.bottom:f.top,p="right"===h?"HTML"===a.nodeName?-a.clientWidth+f.right:-l.width+f.right:f.left,s&&d)c[d]="translate3d("+p+"px, "+g+"px, 0)",c[u]=0,c[h]=0,c.willChange="transform";else{var m="bottom"===u?-1:1,_="right"===h?-1:1;c[u]=g*m,c[h]=p*_,c.willChange=u+", "+h}var v={"x-placement":t.placement};return t.attributes=me({},v,t.attributes),t.styles=me({},c,t.styles),t.arrowStyles=me({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return He(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&He(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=De(o,e,t,n.positionFixed),s=we(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),He(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},Ve=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};de(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=$t(this.update.bind(this)),this.options=me({},t.Defaults,o),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(me({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){i.options.modifiers[e]=me({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return me({name:t},i.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&Jt(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return pe(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=De(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=we(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=Ae(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=Le(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,Se(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[Ce("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=ke(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return Pe.call(this)}}]),t}();Ve.Utils=("undefined"!=typeof window?window:global).PopperUtils,Ve.placements=Re,Ve.Defaults=Ke;var Ye="dropdown",Qe="bs.dropdown",Ge="."+Qe,qe=new RegExp("38|40|27"),Xe={HIDE:"hide"+Ge,HIDDEN:"hidden"+Ge,SHOW:"show"+Ge,SHOWN:"shown"+Ge,CLICK:"click"+Ge,CLICK_DATA_API:"click"+Ge+".data-api",KEYDOWN_DATA_API:"keydown"+Ge+".data-api",KEYUP_DATA_API:"keyup"+Ge+".data-api"},ze="disabled",Ze="show",$e="dropup",Je="dropright",tn="dropleft",en="dropdown-menu-right",nn="position-static",on='[data-toggle="dropdown"]',rn=".dropdown form",sn=".dropdown-menu",an=".navbar-nav",ln=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",cn="top-start",fn="top-end",un="bottom-start",hn="bottom-end",dn="right-start",pn="left-start",gn={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},mn={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},_n=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),E.setData(t,Qe,this)}var n=t.prototype;return n.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(ze)){var e=t._getParentFromElement(this._element),n=this._menu.classList.contains(Ze);if(t._clearMenus(),!n){var i={relatedTarget:this._element};if(!j.trigger(e,Xe.SHOW,i).defaultPrevented){if(!this._inNavbar){if(void 0===Ve)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var o=this._element;"parent"===this._config.reference?o=e:h(this._config.reference)&&(o=this._config.reference,void 0!==this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add(nn),this._popper=new Ve(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!g(F.closest(e,an)).length&&g(document.body.children).forEach(function(t){return j.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),ft.toggleClass(this._menu,Ze),ft.toggleClass(e,Ze),j.trigger(e,Xe.SHOWN,i)}}}},n.show=function(){if(!(this._element.disabled||this._element.classList.contains(ze)||this._menu.classList.contains(Ze))){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};j.trigger(e,Xe.SHOW,n).defaultPrevented||(ft.toggleClass(this._menu,Ze),ft.toggleClass(e,Ze),j.trigger(e,Xe.SHOWN,n))}},n.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(ze)&&this._menu.classList.contains(Ze)){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};j.trigger(e,Xe.HIDE,n).defaultPrevented||(ft.toggleClass(this._menu,Ze),ft.toggleClass(e,Ze),j.trigger(e,Xe.HIDDEN,n))}},n.dispose=function(){E.removeData(this._element,Qe),j.off(this._element,Ge),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},n.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},n._addEventListeners=function(){var t=this;j.on(this._element,Xe.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},n._getConfig=function(t){return t=i({},this.constructor.Default,ft.getDataAttributes(this._element),t),p(Ye,t,this.constructor.DefaultType),t},n._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=F.findOne(sn,e))}return this._menu},n._getPlacement=function(){var t=this._element.parentNode,e=un;return t.classList.contains($e)?(e=cn,this._menu.classList.contains(en)&&(e=fn)):t.classList.contains(Je)?e=dn:t.classList.contains(tn)?e=pn:this._menu.classList.contains(en)&&(e=hn),e},n._detectNavbar=function(){return Boolean(F.closest(this._element,".navbar"))},n._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=i({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},n._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}),t},t._dropdownInterface=function(e,n){var i=E.getData(e,Qe);if(i||(i=new t(e,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._dropdownInterface(this,e)})},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=g(F.find(on)),i=0,o=n.length;i<o;i++){var r=t._getParentFromElement(n[i]),s=E.getData(n[i],Qe),a={relatedTarget:n[i]};if(e&&"click"===e.type&&(a.clickEvent=e),s){var l=s._menu;if(r.classList.contains(Ze))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&r.contains(e.target)))j.trigger(r,Xe.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&g(document.body.children).forEach(function(t){return j.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(Ze),r.classList.remove(Ze),j.trigger(r,Xe.HIDDEN,a))}}},t._getParentFromElement=function(t){var e,n=c(t);return n&&(e=F.findOne(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||F.closest(e.target,sn))):qe.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains(ze))){var n=t._getParentFromElement(this),i=n.classList.contains(Ze);if(!i||i&&(27===e.which||32===e.which))return 27===e.which&&j.trigger(F.findOne(on,n),"focus"),void t._clearMenus();var o=g(F.find(ln,n));if(o.length){var r=o.indexOf(e.target);38===e.which&&r>0&&r--,40===e.which&&r<o.length-1&&r++,r<0&&(r=0),o[r].focus()}}},t._getInstance=function(t){return E.getData(t,Qe)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return gn}},{key:"DefaultType",get:function(){return mn}}]),t}();if(j.on(document,Xe.KEYDOWN_DATA_API,on,_n._dataApiKeydownHandler),j.on(document,Xe.KEYDOWN_DATA_API,sn,_n._dataApiKeydownHandler),j.on(document,Xe.CLICK_DATA_API,_n._clearMenus),j.on(document,Xe.KEYUP_DATA_API,_n._clearMenus),j.on(document,Xe.CLICK_DATA_API,on,function(t){t.preventDefault(),t.stopPropagation(),_n._dropdownInterface(this,"toggle")}),j.on(document,Xe.CLICK_DATA_API,rn,function(t){return t.stopPropagation()}),void 0!==a){var vn=a.fn[Ye];a.fn[Ye]=_n._jQueryInterface,a.fn[Ye].Constructor=_n,a.fn[Ye].noConflict=function(){return a.fn[Ye]=vn,_n._jQueryInterface}}var bn="bs.modal",En="."+bn,yn={backdrop:!0,keyboard:!0,focus:!0,show:!0},wn={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Dn={HIDE:"hide"+En,HIDDEN:"hidden"+En,SHOW:"show"+En,SHOWN:"shown"+En,FOCUSIN:"focusin"+En,RESIZE:"resize"+En,CLICK_DISMISS:"click.dismiss"+En,KEYDOWN_DISMISS:"keydown.dismiss"+En,MOUSEUP_DISMISS:"mouseup.dismiss"+En,MOUSEDOWN_DISMISS:"mousedown.dismiss"+En,CLICK_DATA_API:"click"+En+".data-api"},Tn="modal-dialog-scrollable",In="modal-scrollbar-measure",An="modal-backdrop",On="modal-open",Ln="fade",Sn="show",Cn={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Nn=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=F.findOne(Cn.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,E.setData(t,bn,this)}var n=t.prototype;return n.toggle=function(t){return this._isShown?this.hide():this.show(t)},n.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(Ln)&&(this._isTransitioning=!0);var n=j.trigger(this._element,Dn.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),j.on(this._element,Dn.CLICK_DISMISS,Cn.DATA_DISMISS,function(t){return e.hide(t)}),j.on(this._dialog,Dn.MOUSEDOWN_DISMISS,function(){j.one(e._element,Dn.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},n.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=j.trigger(this._element,Dn.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(Ln);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),j.off(document,Dn.FOCUSIN),this._element.classList.remove(Sn),j.off(this._element,Dn.CLICK_DISMISS),j.off(this._dialog,Dn.MOUSEDOWN_DISMISS),i){var o=f(this._element);j.one(this._element,s,function(t){return e._hideModal(t)}),d(this._element,o)}else this._hideModal()}}},n.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return j.off(t,En)}),j.off(document,Dn.FOCUSIN),E.removeData(this._element,bn),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=i({},yn,t),p("modal",t,wn),t},n._showElement=function(t){var e=this,n=this._element.classList.contains(Ln);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(Tn)?F.findOne(Cn.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&v(this._element),this._element.classList.add(Sn),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,j.trigger(e._element,Dn.SHOWN,{relatedTarget:t})};if(n){var o=f(this._dialog);j.one(this._dialog,s,i),d(this._dialog,o)}else i()},n._enforceFocus=function(){var t=this;j.off(document,Dn.FOCUSIN),j.on(document,Dn.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},n._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?j.on(this._element,Dn.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||j.off(this._element,Dn.KEYDOWN_DISMISS)},n._setResizeEvent=function(){var t=this;this._isShown?j.on(window,Dn.RESIZE,function(e){return t.handleUpdate(e)}):j.off(window,Dn.RESIZE)},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(On),t._resetAdjustments(),t._resetScrollbar(),j.trigger(t._element,Dn.HIDDEN)})},n._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},n._showBackdrop=function(t){var e=this,n=this._element.classList.contains(Ln)?Ln:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=An,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),j.on(this._element,Dn.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&v(this._backdrop),this._backdrop.classList.add(Sn),!t)return;if(!n)return void t();var i=f(this._backdrop);j.one(this._backdrop,s,t),d(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(Sn);var o=function(){e._removeBackdrop(),t&&t()};if(this._element.classList.contains(Ln)){var r=f(this._backdrop);j.one(this._backdrop,s,o),d(this._backdrop,r)}else o()}else t&&t()},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){g(F.find(Cn.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];ft.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),g(F.find(Cn.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];ft.setDataAttribute(e,"margin-right",n),e.style.marginRight=parseFloat(i)-t._scrollbarWidth+"px"});var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];ft.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(On)},n._resetScrollbar=function(){g(F.find(Cn.FIXED_CONTENT)).forEach(function(t){var e=ft.getDataAttribute(t,"padding-right");void 0!==e&&(ft.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),g(F.find(""+Cn.STICKY_CONTENT)).forEach(function(t){var e=ft.getDataAttribute(t,"margin-right");void 0!==e&&(ft.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=ft.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(ft.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className=In,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each(function(){var o=E.getData(this,bn),r=i({},yn,ft.getDataAttributes(this),"object"==typeof e&&e?e:{});if(o||(o=new t(this,r)),"string"==typeof e){if(void 0===o[e])throw new TypeError('No method named "'+e+'"');o[e](n)}else r.show&&o.show(n)})},t._getInstance=function(t){return E.getData(t,bn)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return yn}}]),t}();if(j.on(document,Dn.CLICK_DATA_API,Cn.DATA_TOGGLE,function(t){var e,n=this,o=c(this);o&&(e=F.findOne(o));var r=E.getData(e,bn)?"toggle":i({},ft.getDataAttributes(e),ft.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),j.one(e,Dn.SHOW,function(t){t.defaultPrevented||j.one(e,Dn.HIDDEN,function(){m(n)&&n.focus()})});var s=E.getData(e,bn);s||(s=new Nn(e,r)),s.show(this)}),void 0!==a){var kn=a.fn.modal;a.fn.modal=Nn._jQueryInterface,a.fn.modal.Constructor=Nn,a.fn.modal.noConflict=function(){return a.fn.modal=kn,Nn._jQueryInterface}}var Pn=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],xn=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Hn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Mn=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Pn.indexOf(n)||Boolean(t.nodeValue.match(xn)||t.nodeValue.match(Hn));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1},jn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Rn(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=g(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(s))return i.parentNode.removeChild(i),"continue";var a=g(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach(function(t){Mn(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}var Wn="tooltip",Fn=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Un=["sanitize","whiteList","sanitizeFn"],Bn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},Kn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Vn={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:jn},Yn="show",Qn="out",Gn={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"},qn="fade",Xn="show",zn=".tooltip-inner",Zn=".tooltip-arrow",$n="hover",Jn="focus",ti="click",ei="manual",ni=function(){function t(t,e){if(void 0===Ve)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(),E.setData(t,this.constructor.DATA_KEY,this)}var n=t.prototype;return n.enable=function(){this._isEnabled=!0},n.disable=function(){this._isEnabled=!1},n.toggleEnabled=function(){this._isEnabled=!this._isEnabled},n.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=E.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(Xn))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),E.removeData(this.element,this.constructor.DATA_KEY),j.off(this.element,this.constructor.EVENT_KEY),j.off(F.closest(this.element,".modal"),"hide.bs.modal"),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},n.show=function(){var t=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var e=j.trigger(this.element,this.constructor.Event.SHOW),n=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this.element),i=null===n?this.element.ownerDocument.documentElement.contains(this.element):n.contains(this.element);if(e.defaultPrevented||!i)return;var o=this.getTipElement(),r=l(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&o.classList.add(qn);var a="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,c=this._getAttachment(a);this.addAttachmentClass(c);var u=this._getContainer();E.setData(o,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||u.appendChild(o),j.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new Ve(this.element,o,{placement:c,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Zn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}}),o.classList.add(Xn),"ontouchstart"in document.documentElement&&g(document.body.children).forEach(function(t){j.on(t,"mouseover",function(){})});var h=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,j.trigger(t.element,t.constructor.Event.SHOWN),e===Qn&&t._leave(null,t)};if(this.tip.classList.contains(qn)){var p=f(this.tip);j.one(this.tip,s,h),d(this.tip,p)}else h()}},n.hide=function(t){var e=this,n=this.getTipElement(),i=function(){e._hoverState!==Yn&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),j.trigger(e.element,e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(!j.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(Xn),"ontouchstart"in document.documentElement&&g(document.body.children).forEach(function(t){return j.off(t,"mouseover",_)}),this._activeTrigger[ti]=!1,this._activeTrigger[Jn]=!1,this._activeTrigger[$n]=!1,this.tip.classList.contains(qn)){var o=f(n);j.one(n,s,i),d(n,o)}else i();this._hoverState=""}},n.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},n.isWithContent=function(){return Boolean(this.getTitle())},n.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},n.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},n.setContent=function(){var t=this.getTipElement();this.setElementContent(F.findOne(zn,t),this.getTitle()),t.classList.remove(qn),t.classList.remove(Xn)},n.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&(e.nodeType||e.jquery)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Rn(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},n.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},n._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=i({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},n._getContainer=function(){return!1===this.config.container?document.body:h(this.config.container)?this.config.container:F.findOne(this.config.container)},n._getAttachment=function(t){return Kn[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)j.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==ei){var n=e===$n?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===$n?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;j.on(t.element,n,t.config.selector,function(e){return t._enter(e)}),j.on(t.element,i,t.config.selector,function(e){return t._leave(e)})}}),j.on(F.closest(this.element,".modal"),"hide.bs.modal",function(){t.element&&t.hide()}),this.config.selector?this.config=i({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},n._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",""))},n._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||E.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?Jn:$n]=!0),e.getTipElement().classList.contains(Xn)||e._hoverState===Yn?e._hoverState=Yn:(clearTimeout(e._timeout),e._hoverState=Yn,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Yn&&e.show()},e.config.delay.show):e.show())},n._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||E.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?Jn:$n]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Qn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===Qn&&e.hide()},e.config.delay.hide):e.hide())},n._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},n._getConfig=function(t){var e=ft.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==Un.indexOf(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=i({},this.constructor.Default,e,"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()),p(Wn,t,this.constructor.DefaultType),t.sanitize&&(t.template=Rn(t.template,t.whiteList,t.sanitizeFn)),t},n._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},n._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Fn);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},n._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},n._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(qn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,"bs.tooltip"),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return E.getData(t,"bs.tooltip")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Vn}},{key:"NAME",get:function(){return Wn}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Gn}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Bn}}]),t}();if(void 0!==a){var ii=a.fn.tooltip;a.fn.tooltip=ni._jQueryInterface,a.fn.tooltip.Constructor=ni,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=ii,ni._jQueryInterface}}var oi="popover",ri=new RegExp("(^|\\s)bs-popover\\S+","g"),si=i({},ni.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),ai=i({},ni.DefaultType,{content:"(string|element|function)"}),li="fade",ci="show",fi=".popover-header",ui=".popover-body",hi={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"},di=function(t){var n,i;function o(){return t.apply(this,arguments)||this}i=t,(n=o).prototype=Object.create(i.prototype),n.prototype.constructor=n,n.__proto__=i;var r=o.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},r.setContent=function(){var t=this.getTipElement();this.setElementContent(F.findOne(fi,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(F.findOne(ui,t),e),t.classList.remove(li),t.classList.remove(ci)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(ri);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=E.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),E.setData(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o._getInstance=function(t){return E.getData(t,"bs.popover")},e(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return si}},{key:"NAME",get:function(){return oi}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return hi}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return ai}}]),o}(ni);if(void 0!==a){var pi=a.fn.popover;a.fn.popover=di._jQueryInterface,a.fn.popover.Constructor=di,a.fn.popover.noConflict=function(){return a.fn.popover=pi,di._jQueryInterface}}var gi="scrollspy",mi="bs.scrollspy",_i="."+mi,vi={offset:10,method:"auto",target:""},bi={offset:"number",method:"string",target:"(string|element)"},Ei={ACTIVATE:"activate"+_i,SCROLL:"scroll"+_i,LOAD_DATA_API:"load"+_i+".data-api"},yi={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},wi={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},Di="offset",Ti="position",Ii=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+wi.NAV_LINKS+","+this._config.target+" "+wi.LIST_ITEMS+","+this._config.target+" ."+yi.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,j.on(this._scrollElement,Ei.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),E.setData(t,mi,this)}var n=t.prototype;return n.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Di:Ti,n="auto"===this._config.method?e:this._config.method,i=n===Ti?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),g(F.find(this._selector)).map(function(t){var e,o=c(t);if(o&&(e=F.findOne(o)),e){var r=e.getBoundingClientRect();if(r.width||r.height)return[ft[n](e).top+i,o]}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,mi),j.off(this._scrollElement,_i),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=i({},vi,"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=l(gi),t.target.id=e),t.target="#"+e}return p(gi,t,bi),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&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},n._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),n=F.findOne(e.join(","));n.classList.contains(yi.DROPDOWN_ITEM)?(F.findOne(wi.DROPDOWN_TOGGLE,F.closest(n,wi.DROPDOWN)).classList.add(yi.ACTIVE),n.classList.add(yi.ACTIVE)):(n.classList.add(yi.ACTIVE),F.parents(n,wi.NAV_LIST_GROUP).forEach(function(t){F.prev(t,wi.NAV_LINKS+", "+wi.LIST_ITEMS).forEach(function(t){return t.classList.add(yi.ACTIVE)}),F.prev(t,wi.NAV_ITEMS).forEach(function(t){F.children(t,wi.NAV_LINKS).forEach(function(t){return t.classList.add(yi.ACTIVE)})})})),j.trigger(this._scrollElement,Ei.ACTIVATE,{relatedTarget:t})},n._clear=function(){g(F.find(this._selector)).filter(function(t){return t.classList.contains(yi.ACTIVE)}).forEach(function(t){return t.classList.remove(yi.ACTIVE)})},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,mi);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return E.getData(t,mi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return vi}}]),t}();if(j.on(window,Ei.LOAD_DATA_API,function(){g(F.find(wi.DATA_SPY)).forEach(function(t){return new Ii(t,ft.getDataAttributes(t))})}),void 0!==a){var Ai=a.fn[gi];a.fn[gi]=Ii._jQueryInterface,a.fn[gi].Constructor=Ii,a.fn[gi].noConflict=function(){return a.fn[gi]=Ai,Ii._jQueryInterface}}var Oi="bs.tab",Li="."+Oi,Si={HIDE:"hide"+Li,HIDDEN:"hidden"+Li,SHOW:"show"+Li,SHOWN:"shown"+Li,CLICK_DATA_API:"click"+Li+".data-api"},Ci="dropdown-menu",Ni="active",ki="disabled",Pi="fade",xi="show",Hi=".dropdown",Mi=".nav, .list-group",ji=".active",Ri=":scope > li > .active",Wi='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Fi=".dropdown-toggle",Ui=":scope > .dropdown-menu .active",Bi=function(){function t(t){this._element=t,E.setData(this._element,Oi,this)}var n=t.prototype;return n.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Ni)||this._element.classList.contains(ki))){var e,n,i=F.closest(this._element,Mi),o=c(this._element);if(i){var r="UL"===i.nodeName||"OL"===i.nodeName?Ri:ji;n=(n=g(F.find(r,i)))[n.length-1]}var s=null;if(n&&(s=j.trigger(n,Si.HIDE,{relatedTarget:this._element})),!(j.trigger(this._element,Si.SHOW,{relatedTarget:n}).defaultPrevented||null!==s&&s.defaultPrevented)){o&&(e=F.findOne(o)),this._activate(this._element,i);var a=function(){j.trigger(n,Si.HIDDEN,{relatedTarget:t._element}),j.trigger(t._element,Si.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},n.dispose=function(){E.removeData(this._element,Oi),this._element=null},n._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?F.children(e,ji):F.find(Ri,e))[0],r=n&&o&&o.classList.contains(Pi),a=function(){return i._transitionComplete(t,o,n)};if(o&&r){var l=f(o);o.classList.remove(xi),j.one(o,s,a),d(o,l)}else a()},n._transitionComplete=function(t,e,n){if(e){e.classList.remove(Ni);var i=F.findOne(Ui,e.parentNode);i&&i.classList.remove(Ni),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(Ni),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),v(t),t.classList.contains(Pi)&&t.classList.add(xi),t.parentNode&&t.parentNode.classList.contains(Ci))&&(F.closest(t,Hi)&&g(F.find(Fi)).forEach(function(t){return t.classList.add(Ni)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,Oi)||new t(this);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return E.getData(t,Oi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(j.on(document,Si.CLICK_DATA_API,Wi,function(t){t.preventDefault(),(E.getData(this,Oi)||new Bi(this)).show()}),void 0!==a){var Ki=a.fn.tab;a.fn.tab=Bi._jQueryInterface,a.fn.tab.Constructor=Bi,a.fn.tab.noConflict=function(){return a.fn.tab=Ki,Bi._jQueryInterface}}var Vi="bs.toast",Yi="."+Vi,Qi={CLICK_DISMISS:"click.dismiss"+Yi,HIDE:"hide"+Yi,HIDDEN:"hidden"+Yi,SHOW:"show"+Yi,SHOWN:"shown"+Yi},Gi="fade",qi="hide",Xi="show",zi="showing",Zi={animation:"boolean",autohide:"boolean",delay:"number"},$i={animation:!0,autohide:!0,delay:500},Ji='[data-dismiss="toast"]',to=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),E.setData(t,Vi,this)}var n=t.prototype;return n.show=function(){var t=this;j.trigger(this._element,Qi.SHOW),this._config.animation&&this._element.classList.add(Gi);var e=function(){t._element.classList.remove(zi),t._element.classList.add(Xi),j.trigger(t._element,Qi.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove(qi),this._element.classList.add(zi),this._config.animation){var n=f(this._element);j.one(this._element,s,e),d(this._element,n)}else e()},n.hide=function(t){var e=this;this._element.classList.contains(Xi)&&(j.trigger(this._element,Qi.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},n.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(Xi)&&this._element.classList.remove(Xi),j.off(this._element,Qi.CLICK_DISMISS),E.removeData(this._element,Vi),this._element=null,this._config=null},n._getConfig=function(t){return t=i({},$i,ft.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),p("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;j.on(this._element,Qi.CLICK_DISMISS,Ji,function(){return t.hide(!0)})},n._close=function(){var t=this,e=function(){t._element.classList.add(qi),j.trigger(t._element,Qi.HIDDEN)};if(this._element.classList.remove(Xi),this._config.animation){var n=f(this._element);j.one(this._element,s,e),d(this._element,n)}else e()},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,Vi);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}})},t._getInstance=function(t){return E.getData(t,Vi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return Zi}},{key:"Default",get:function(){return $i}}]),t}();if(void 0!==a){var eo=a.fn.toast;a.fn.toast=to._jQueryInterface,a.fn.toast.Constructor=to,a.fn.toast.noConflict=function(){return a.fn.toast=eo,to._jQueryInterface}}return{Alert:G,Button:st,Carousel:Nt,Collapse:Qt,Dropdown:_n,Modal:Nn,Popover:di,ScrollSpy:Ii,Tab:Bi,Toast:to,Tooltip:ni}}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).bootstrap=e()}(this,function(){"use strict";function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function e(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}function n(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{},o=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(i).filter(function(t){return Object.getOwnPropertyDescriptor(i,t).enumerable}))),o.forEach(function(e){n(t,e,i[e])})}return t}var o,r,s,a="transitionend",l=window.jQuery,c=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},f=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},u=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),r=parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},h=function(t){var e=document.createEvent("HTMLEvents");e.initEvent(a,!0,!0),t.dispatchEvent(e)},d=function(t){return(t[0]||t).nodeType},p=function(t,e){var n=!1,i=e+5;t.addEventListener(a,function e(){n=!0,t.removeEventListener(a,e)}),setTimeout(function(){n||h(t)},i)},g=function(t,e,n){Object.keys(n).forEach(function(i){var o,r=n[i],s=e[i],a=s&&d(s)?"element":(o=s,{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')})},m=function(t){return t?[].slice.call(t):[]},_=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},v=function(){return function(){}},y=function(t){return t.offsetHeight},b=(o={},r=1,{set:function(t,e,n){"undefined"==typeof t.key&&(t.key={key:e,id:r},r++),o[t.key.id]=n},get:function(t,e){if(!t||"undefined"==typeof t.key)return null;var n=t.key;return n.key===e?o[n.id]:null},delete:function(t,e){if("undefined"!=typeof t.key){var n=t.key;n.key===e&&(delete o[n.id],delete t.key)}}}),E={setData:function(t,e,n){b.set(t,e,n)},getData:function(t,e){return b.get(t,e)},removeData:function(t,e){b.delete(t,e)}},w=Element.prototype,D=w.matches,T=w.closest,I=Element.prototype.querySelectorAll,A=Element.prototype.querySelector,O=function(t,e){return new CustomEvent(t,e)};if("function"!=typeof window.CustomEvent&&(O=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}),!((s=document.createEvent("CustomEvent")).initEvent("Bootstrap",!0,!0),s.preventDefault(),s.defaultPrevented)){var S=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(S.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var L=function(){var t=O("Bootstrap",{cancelable:!0}),e=document.createElement("div");return e.addEventListener("Bootstrap",function(){return null}),t.preventDefault(),e.dispatchEvent(t),t.defaultPrevented}();D||(D=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),T||(T=function(t){var e=this;do{if(D.call(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null});var C=/:scope\b/;(function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0})()||(I=function(t){if(!C.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=c("scope"));var n=null;try{t=t.replace(C,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},A=function(t){if(!C.test(t))return this.querySelector(t);var e=I.call(this,t);return"undefined"!=typeof e[0]?e[0]:null});var N=/[^.]*(?=\..*)\.|.*/,k=/\..*/,P=/^key/,x=/::\d+$/,M={},H=1,j={mouseenter:"mouseover",mouseleave:"mouseout"},R=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function W(t,e){return e&&e+"::"+H++||t.uidEvent||H++}function F(t){var e=W(t);return t.uidEvent=e,M[e]=M[e]||{},M[e]}function U(t,e){null===t.which&&P.test(t.type)&&(t.which=null===t.charCode?t.keyCode:t.charCode),t.delegateTarget=e}function B(t,e,n){void 0===n&&(n=null);for(var i=0,o=Object.keys(t);i<o.length;i++){var r=o[i],s=t[r];if(s.originalHandler===e&&s.delegationSelector===n)return t[r]}return null}function K(t,e,n){var i="string"==typeof e,o=i?n:e,r=t.replace(k,""),s=j[r];return s&&(r=s),R.indexOf(r)>-1||(r=t),[i,o,r]}function V(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var r=K(e,n,i),s=r[0],a=r[1],l=r[2],c=F(t),f=c[l]||(c[l]={}),u=B(f,a,s?n:null);if(u)u.oneOff=u.oneOff&&o;else{var h=W(a,e.replace(N,"")),d=s?function(t,e,n){return function i(o){for(var r=t.querySelectorAll(e),s=o.target;s&&s!==this;s=s.parentNode)for(var a=r.length;a--;)if(r[a]===s)return U(o,s),i.oneOff&&Q.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return U(i,t),n.oneOff&&Q.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=s?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=h,f[h]=d,t.addEventListener(l,d,s)}}}function Y(t,e,n,i,o){var r=B(e[n],i,o);null!==r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}var Q={on:function(t,e,n,i){V(t,e,n,i,!1)},one:function(t,e,n,i){V(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=K(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=F(t),f="."===e.charAt(0);if("undefined"==typeof s){f&&Object.keys(c).forEach(function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach(function(r){if(r.indexOf(i)>-1){var s=o[r];Y(t,e,n,s.originalHandler,s.delegationSelector)}})}(t,c,n,e.substr(1))});var u=c[a]||{};Object.keys(u).forEach(function(n){var i=n.replace(x,"");if(!l||e.indexOf(i)>-1){var o=u[n];Y(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;Y(t,c,a,s,r?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(k,""),r=e!==o,s=R.indexOf(o)>-1,a=!0,c=!0,f=!1,u=null;return r&&"undefined"!=typeof l&&(i=l.Event(e,n),l(t).trigger(i),a=!i.isPropagationStopped(),c=!i.isImmediatePropagationStopped(),f=i.isDefaultPrevented()),s?(u=document.createEvent("HTMLEvents")).initEvent(o,a,!0):u=O(e,{bubbles:a,cancelable:!0}),"undefined"!=typeof n&&Object.keys(n).forEach(function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})}),f&&(u.preventDefault(),L||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),c&&t.dispatchEvent(u),u.defaultPrevented&&"undefined"!=typeof i&&i.preventDefault(),u}},G={matches:function(t,e){return D.call(t,e)},find:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:I.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:A.call(e,t)},children:function(t,e){var n=this;if("string"!=typeof e)return null;var i=m(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return"string"!=typeof e?null:T.call(t,e)},prev:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},X="bs.alert",q="."+X,z={CLOSE:"close"+q,CLOSED:"closed"+q,CLICK_DATA_API:"click"+q+".data-api"},Z="alert",$="fade",J="show",tt=function(){function t(t){this._element=t,this._element&&E.setData(t,X,this)}var n=t.prototype;return n.close=function(t){var e=this._element;t&&(e=this._getRootElement(t));var n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},n.dispose=function(){E.removeData(this._element,X),this._element=null},n._getRootElement=function(t){var e=f(t),n=!1;return e&&(n=G.findOne(e)),n||(n=G.closest(t,"."+Z)),n},n._triggerCloseEvent=function(t){return Q.trigger(t,z.CLOSE)},n._removeElement=function(t){var e=this;if(t.classList.remove(J),t.classList.contains($)){var n=u(t);Q.one(t,a,function(n){return e._destroyElement(t,n)}),p(t,n)}else this._destroyElement(t)},n._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),Q.trigger(t,z.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,X);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return E.getData(t,X)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(Q.on(document,z.CLICK_DATA_API,'[data-dismiss="alert"]',tt._handleDismiss(new tt)),"undefined"!=typeof l){var et=l.fn.alert;l.fn.alert=tt._jQueryInterface,l.fn.alert.Constructor=tt,l.fn.alert.noConflict=function(){return l.fn.alert=et,tt._jQueryInterface}}var nt="bs.button",it="."+nt,ot="active",rt="btn",st="focus",at='[data-toggle^="button"]',lt='[data-toggle="buttons"]',ct='input:not([type="hidden"])',ft=".active",ut=".btn",ht={CLICK_DATA_API:"click"+it+".data-api",FOCUS_DATA_API:"focus"+it+".data-api",BLUR_DATA_API:"blur"+it+".data-api"},dt=function(){function t(t){this._element=t,E.setData(t,nt,this)}var n=t.prototype;return n.toggle=function(){var t=!0,e=!0,n=G.closest(this._element,lt);if(n){var i=G.findOne(ct,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(ot))t=!1;else{var o=G.findOne(ft,n);o&&o.classList.remove(ot)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(ot),Q.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(ot)),t&&this._element.classList.toggle(ot)},n.dispose=function(){E.removeData(this._element,nt),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,nt);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return E.getData(t,nt)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(Q.on(document,ht.CLICK_DATA_API,at,function(t){t.preventDefault();var e=t.target;e.classList.contains(rt)||(e=G.closest(e,ut));var n=E.getData(e,nt);n||(n=new dt(e),E.setData(e,nt,n)),n.toggle()}),Q.on(document,ht.FOCUS_DATA_API,at,function(t){var e=G.closest(t.target,ut);e&&e.classList.add(st)}),Q.on(document,ht.BLUR_DATA_API,at,function(t){var e=G.closest(t.target,ut);e&&e.classList.remove(st)}),"undefined"!=typeof l){var pt=l.fn.button;l.fn.button=dt._jQueryInterface,l.fn.button.Constructor=dt,l.fn.button.noConflict=function(){return l.fn.button=pt,dt._jQueryInterface}}function gt(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function mt(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var _t={setDataAttribute:function(t,e,n){t.setAttribute("data-"+mt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+mt(e))},getDataAttributes:function(t){if(!t)return{};var e=i({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=gt(e[t])}),e},getDataAttribute:function(t,e){return gt(t.getAttribute("data-"+mt(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},vt="carousel",yt="bs.carousel",bt="."+yt,Et={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},wt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Dt="next",Tt="prev",It="left",At="right",Ot={SLIDE:"slide"+bt,SLID:"slid"+bt,KEYDOWN:"keydown"+bt,MOUSEENTER:"mouseenter"+bt,MOUSELEAVE:"mouseleave"+bt,TOUCHSTART:"touchstart"+bt,TOUCHMOVE:"touchmove"+bt,TOUCHEND:"touchend"+bt,POINTERDOWN:"pointerdown"+bt,POINTERUP:"pointerup"+bt,DRAG_START:"dragstart"+bt,LOAD_DATA_API:"load"+bt+".data-api",CLICK_DATA_API:"click"+bt+".data-api"},St="carousel",Lt="active",Ct="slide",Nt="carousel-item-right",kt="carousel-item-left",Pt="carousel-item-next",xt="carousel-item-prev",Mt="pointer-event",Ht={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},jt={TOUCH:"touch",PEN:"pen"},Rt=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=G.findOne(Ht.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),E.setData(t,yt,this)}var n=t.prototype;return n.next=function(){this._isSliding||this._slide(Dt)},n.nextWhenVisible=function(){!document.hidden&&_(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide(Tt)},n.pause=function(t){t||(this._isPaused=!0),G.findOne(Ht.NEXT_PREV,this._element)&&(h(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&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var e=this;this._activeElement=G.findOne(Ht.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)Q.one(this._element,Ot.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?Dt:Tt;this._slide(i,this._items[t])}},n.dispose=function(){Q.off(this._element,bt),E.removeData(this._element,yt),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=i({},Et,t),g(vt,t,wt),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&&Q.on(this._element,Ot.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(Q.on(this._element,Ot.MOUSEENTER,function(e){return t.pause(e)}),Q.on(this._element,Ot.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&jt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&jt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.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))};m(G.find(Ht.ITEM_IMG,this._element)).forEach(function(t){Q.on(t,Ot.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(Q.on(this._element,Ot.POINTERDOWN,function(t){return e(t)}),Q.on(this._element,Ot.POINTERUP,function(t){return n(t)}),this._element.classList.add(Mt)):(Q.on(this._element,Ot.TOUCHSTART,function(t){return e(t)}),Q.on(this._element,Ot.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),Q.on(this._element,Ot.TOUCHEND,function(t){return n(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?m(G.find(Ht.ITEM,t.parentNode)):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n=t===Dt,i=t===Tt,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===Tt?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},n._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(G.findOne(Ht.ACTIVE_ITEM,this._element));return Q.trigger(this._element,Ot.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=G.find(Ht.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(Lt);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(Lt)}},n._slide=function(t,e){var n,i,o,r=this,s=G.findOne(Ht.ACTIVE_ITEM,this._element),l=this._getItemIndex(s),c=e||s&&this._getItemByDirection(t,s),f=this._getItemIndex(c),h=Boolean(this._interval);if(t===Dt?(n=kt,i=Pt,o=It):(n=Nt,i=xt,o=At),c&&c.classList.contains(Lt))this._isSliding=!1;else if(!this._triggerSlideEvent(c,o).defaultPrevented&&s&&c){if(this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(c),this._element.classList.contains(Ct)){c.classList.add(i),y(c),s.classList.add(n),c.classList.add(n);var d=parseInt(c.getAttribute("data-interval"),10);d?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=d):this._config.interval=this._config.defaultInterval||this._config.interval;var g=u(s);Q.one(s,a,function(){c.classList.remove(n),c.classList.remove(i),c.classList.add(Lt),s.classList.remove(Lt),s.classList.remove(i),s.classList.remove(n),r._isSliding=!1,setTimeout(function(){Q.trigger(r._element,Ot.SLID,{relatedTarget:c,direction:o,from:l,to:f})},0)}),p(s,g)}else s.classList.remove(Lt),c.classList.add(Lt),this._isSliding=!1,Q.trigger(this._element,Ot.SLID,{relatedTarget:c,direction:o,from:l,to:f});h&&this.cycle()}},t._carouselInterface=function(e,n){var o=E.getData(e,yt),r=i({},Et,_t.getDataAttributes(e));"object"==typeof n&&(r=i({},r,n));var s="string"==typeof n?n:r.slide;if(o||(o=new t(e,r)),"number"==typeof n)o.to(n);else if("string"==typeof s){if("undefined"==typeof o[s])throw new TypeError('No method named "'+s+'"');o[s]()}else r.interval&&r.ride&&(o.pause(),o.cycle())},t._jQueryInterface=function(e){return this.each(function(){t._carouselInterface(this,e)})},t._dataApiClickHandler=function(e){var n=f(this);if(n){var o=G.findOne(n);if(o&&o.classList.contains(St)){var r=i({},_t.getDataAttributes(o),_t.getDataAttributes(this)),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),t._carouselInterface(o,r),s&&E.getData(o,yt).to(s),e.preventDefault()}}},t._getInstance=function(t){return E.getData(t,yt)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Et}}]),t}();if(Q.on(document,Ot.CLICK_DATA_API,Ht.DATA_SLIDE,Rt._dataApiClickHandler),Q.on(window,Ot.LOAD_DATA_API,function(){for(var t=m(G.find(Ht.DATA_RIDE)),e=0,n=t.length;e<n;e++)Rt._carouselInterface(t[e],E.getData(t[e],yt))}),"undefined"!=typeof l){var Wt=l.fn[vt];l.fn[vt]=Rt._jQueryInterface,l.fn[vt].Constructor=Rt,l.fn[vt].noConflict=function(){return l.fn[vt]=Wt,Rt._jQueryInterface}}var Ft="collapse",Ut="bs.collapse",Bt="."+Ut,Kt={toggle:!0,parent:""},Vt={toggle:"boolean",parent:"(string|element)"},Yt={SHOW:"show"+Bt,SHOWN:"shown"+Bt,HIDE:"hide"+Bt,HIDDEN:"hidden"+Bt,CLICK_DATA_API:"click"+Bt+".data-api"},Qt="show",Gt="collapse",Xt="collapsing",qt="collapsed",zt="width",Zt="height",$t={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},Jt=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=m(G.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=m(G.find($t.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var r=n[i],s=f(r),a=m(G.find(s)).filter(function(e){return e===t});null!==s&&a.length&&(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(),E.setData(t,Ut,this)}var n=t.prototype;return n.toggle=function(){this._element.classList.contains(Qt)?this.hide():this.show()},n.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Qt)){var n,i;this._parent&&0===(n=m(G.find($t.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(Gt)})).length&&(n=null);var o=G.findOne(this._selector);if(n){var r=n.filter(function(t){return o!==t});if((i=r[0]?E.getData(r[0],Ut):null)&&i._isTransitioning)return}if(!Q.trigger(this._element,Yt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||E.setData(e,Ut,null)});var s=this._getDimension();this._element.classList.remove(Gt),this._element.classList.add(Xt),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(qt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var l="scroll"+(s[0].toUpperCase()+s.slice(1)),c=u(this._element);Q.one(this._element,a,function(){e._element.classList.remove(Xt),e._element.classList.add(Gt),e._element.classList.add(Qt),e._element.style[s]="",e.setTransitioning(!1),Q.trigger(e._element,Yt.SHOWN)}),p(this._element,c),this._element.style[s]=this._element[l]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Qt)&&!Q.trigger(this._element,Yt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",y(this._element),this._element.classList.add(Xt),this._element.classList.remove(Gt),this._element.classList.remove(Qt);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=f(o);if(null!==r)G.findOne(r).classList.contains(Qt)||(o.classList.add(qt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var s=u(this._element);Q.one(this._element,a,function(){t.setTransitioning(!1),t._element.classList.remove(Xt),t._element.classList.add(Gt),Q.trigger(t._element,Yt.HIDDEN)}),p(this._element,s)}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){E.removeData(this._element,Ut),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=i({},Kt,t)).toggle=Boolean(t.toggle),g(Ft,t,Vt),t},n._getDimension=function(){return this._element.classList.contains(zt)?zt:Zt},n._getParent=function(){var e=this,n=this._config.parent;d(n)?"undefined"==typeof n.jquery&&"undefined"==typeof n[0]||(n=n[0]):n=G.findOne(n);var i='[data-toggle="collapse"][data-parent="'+n+'"]';return m(G.find(i,n)).forEach(function(n){e._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])}),n},n._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Qt);e.length&&e.forEach(function(t){n?t.classList.remove(qt):t.classList.add(qt),t.setAttribute("aria-expanded",n)})}},t._getTargetFromElement=function(t){var e=f(t);return e?G.findOne(e):null},t._collapseInterface=function(e,n){var o=E.getData(e,Ut),r=i({},Kt,_t.getDataAttributes(e),"object"==typeof n&&n?n:{});if(!o&&r.toggle&&/show|hide/.test(n)&&(r.toggle=!1),o||(o=new t(e,r)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._collapseInterface(this,e)})},t._getInstance=function(t){return E.getData(t,Ut)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Kt}}]),t}();if(Q.on(document,Yt.CLICK_DATA_API,$t.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=_t.getDataAttributes(this),n=f(this);m(G.find(n)).forEach(function(t){var n,i=E.getData(t,Ut);i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,Jt._collapseInterface(t,n)})}),"undefined"!=typeof l){var te=l.fn[Ft];l.fn[Ft]=Jt._jQueryInterface,l.fn[Ft].Constructor=Jt,l.fn[Ft].noConflict=function(){return l.fn[Ft]=te,Jt._jQueryInterface}}for(var ee="undefined"!=typeof window&&"undefined"!=typeof document,ne=["Edge","Trident","Firefox"],ie=0,oe=0;oe<ne.length;oe+=1)if(ee&&navigator.userAgent.indexOf(ne[oe])>=0){ie=1;break}var re=ee&&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()},ie))}};function se(t){return t&&"[object Function]"==={}.toString.call(t)}function ae(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function le(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function ce(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=ae(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:ce(le(t))}var fe=ee&&!(!window.MSInputMethodContext||!document.documentMode),ue=ee&&/MSIE 10/.test(navigator.userAgent);function he(t){return 11===t?fe:10===t?ue:fe||ue}function de(t){if(!t)return document.documentElement;for(var e=he(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"===ae(n,"position")?de(n):n:t?t.ownerDocument.documentElement:document.documentElement}function pe(t){return null!==t.parentNode?pe(t.parentNode):t}function ge(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&&de(s.firstElementChild)!==s?de(l):l;var c=pe(t);return c.host?ge(c.host,e):ge(t,pe(e).host)}function me(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function _e(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function ve(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],he(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function ye(t){var e=t.body,n=t.documentElement,i=he(10)&&getComputedStyle(n);return{height:ve("Height",e,n,i),width:ve("Width",e,n,i)}}var be=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Ee=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),we=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},De=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function Te(t){return De({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Ie(t){var e={};try{if(he(10)){e=t.getBoundingClientRect();var n=me(t,"top"),i=me(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?ye(t.ownerDocument):{},s=r.width||t.clientWidth||o.right-o.left,a=r.height||t.clientHeight||o.bottom-o.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var f=ae(t);l-=_e(f,"x"),c-=_e(f,"y"),o.width-=l,o.height-=c}return Te(o)}function Ae(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=he(10),o="HTML"===e.nodeName,r=Ie(t),s=Ie(e),a=ce(t),l=ae(e),c=parseFloat(l.borderTopWidth,10),f=parseFloat(l.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var u=Te({top:r.top-s.top-c,left:r.left-s.left-f,width:r.width,height:r.height});if(u.marginTop=0,u.marginLeft=0,!i&&o){var h=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);u.top-=c-h,u.bottom-=c-h,u.left-=f-d,u.right-=f-d,u.marginTop=h,u.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=me(e,"top"),o=me(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(u,e)),u}function Oe(t){if(!t||!t.parentElement||he())return document.documentElement;for(var e=t.parentElement;e&&"none"===ae(e,"transform");)e=e.parentElement;return e||document.documentElement}function Se(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Oe(t):ge(t,e);if("viewport"===i)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=Ae(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:me(n),a=e?0:me(n,"left");return Te({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r})}(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=ce(le(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=Ae(a,s,o);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===ae(e,"position"))return!0;var i=le(e);return!!i&&t(i)}(s))r=l;else{var c=ye(t.ownerDocument),f=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=f+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}var h="number"==typeof(n=n||0);return r.left+=h?n:n.left||0,r.top+=h?n:n.top||0,r.right-=h?n:n.right||0,r.bottom-=h?n:n.bottom||0,r}function Le(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=Se(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 De({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),f=c.length>0?c[0].key:l[0].key,u=t.split("-")[1];return f+(u?"-"+u:"")}function Ce(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return Ae(n,i?Oe(e):ge(e,n),i)}function Ne(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 ke(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 Pe(t,e,n){n=n.split("-")[0];var i=Ne(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[ke(a)],o}function xe(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function Me(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=xe(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&&se(n)&&(e.offsets.popper=Te(e.offsets.popper),e.offsets.reference=Te(e.offsets.reference),e=n(e,t))}),e}function He(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function je(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if("undefined"!=typeof document.body.style[r])return r}return null}function Re(t){var e=t.ownerDocument;return e?e.defaultView:window}function We(t,e,n,i){n.updateBound=i,Re(t).addEventListener("resize",n.updateBound,{passive:!0});var o=ce(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),r||t(ce(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function Fe(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,Re(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function Ue(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function Be(t,e){Object.keys(e).forEach(function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&Ue(e[n])&&(i="px"),t.style[n]=e[n]+i})}var Ke=ee&&/Firefox/i.test(navigator.userAgent);function Ve(t,e,n){var i=xe(t,function(t){return t.name===e}),o=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!o){var r="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var Ye=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],Qe=Ye.slice(3);function Ge(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Qe.indexOf(t),i=Qe.slice(n+1).concat(Qe.slice(0,n));return e?i.reverse():i}var Xe={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function qe(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(xe(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 Te(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){Ue(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))})}),o}var ze={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",f={start:we({},l,r[l]),end:we({},l,r[l]+r[c]-s[c])};t.offsets.popper=De({},s,f[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=Ue(+n)?[+n,0]:qe(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||de(t.instance.popper);t.instance.reference===n&&(n=de(n));var i=je("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=Se(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,f=t.offsets.popper,u={primary:function(t){var n=f[t];return f[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(f[t],l[t])),we({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=f[n];return f[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(f[n],l[t]-("right"===t?f.width:f.height))),we({},n,i)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";f=De({},f,u[e](t))}),t.offsets.popper=f,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[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!Ve(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,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",f=l?"Top":"Left",u=f.toLowerCase(),h=l?"left":"top",d=l?"bottom":"right",p=Ne(i)[c];a[d]-p<s[u]&&(t.offsets.popper[u]-=s[u]-(a[d]-p)),a[u]+p>s[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=Te(t.offsets.popper);var g=a[u]+a[c]/2-p/2,m=ae(t.instance.popper),_=parseFloat(m["margin"+f],10),v=parseFloat(m["border"+f+"Width"],10),y=g-t.offsets.popper[u]-_-v;return y=Math.max(Math.min(s[c]-p,y),0),t.arrowElement=i,t.offsets.arrow=(we(n={},u,Math.round(y)),we(n,h,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(He(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=Se(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=ke(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case Xe.FLIP:s=[i,o];break;case Xe.CLOCKWISE:s=Ge(i);break;case Xe.COUNTERCLOCKWISE:s=Ge(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=ke(i);var c=t.offsets.popper,f=t.offsets.reference,u=Math.floor,h="left"===i&&u(c.right)>u(f.left)||"right"===i&&u(c.left)<u(f.right)||"top"===i&&u(c.bottom)>u(f.top)||"bottom"===i&&u(c.top)<u(f.bottom),d=u(c.left)<u(n.left),p=u(c.right)>u(n.right),g=u(c.top)<u(n.top),m=u(c.bottom)>u(n.bottom),_="left"===i&&d||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,v=-1!==["top","bottom"].indexOf(i),y=!!e.flipVariations&&(v&&"start"===r&&d||v&&"end"===r&&p||!v&&"start"===r&&g||!v&&"end"===r&&m),b=!!e.flipVariationsByContent&&(v&&"start"===r&&p||v&&"end"===r&&d||!v&&"start"===r&&m||!v&&"end"===r&&g),E=y||b;(h||_||E)&&(t.flipped=!0,(h||_)&&(i=s[l+1]),E&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=De({},t.offsets.popper,Pe(t.instance.popper,t.offsets.reference,t.placement)),t=Me(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=ke(e),t.offsets.popper=Te(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!Ve(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=xe(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=xe(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==r?r:e.gpuAcceleration,a=de(t.instance.popper),l=Ie(a),c={position:o.position},f=function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),c=r(i.width),f=-1!==["left","right"].indexOf(t.placement),u=-1!==t.placement.indexOf("-"),h=e?f||u||l%2==c%2?r:s:a,d=e?r:a;return{left:h(l%2==1&&c%2==1&&!u&&e?i.left-1:i.left),top:d(i.top),bottom:d(i.bottom),right:h(i.right)}}(t,window.devicePixelRatio<2||!Ke),u="bottom"===n?"top":"bottom",h="right"===i?"left":"right",d=je("transform"),p=void 0,g=void 0;if(g="bottom"===u?"HTML"===a.nodeName?-a.clientHeight+f.bottom:-l.height+f.bottom:f.top,p="right"===h?"HTML"===a.nodeName?-a.clientWidth+f.right:-l.width+f.right:f.left,s&&d)c[d]="translate3d("+p+"px, "+g+"px, 0)",c[u]=0,c[h]=0,c.willChange="transform";else{var m="bottom"===u?-1:1,_="right"===h?-1:1;c[u]=g*m,c[h]=p*_,c.willChange=u+", "+h}var v={"x-placement":t.placement};return t.attributes=De({},v,t.attributes),t.styles=De({},c,t.styles),t.arrowStyles=De({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return Be(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&Be(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=Ce(o,e,t,n.positionFixed),s=Le(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),Be(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},Ze=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};be(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=re(this.update.bind(this)),this.options=De({},t.Defaults,o),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(De({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){i.options.modifiers[e]=De({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return De({name:t},i.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&se(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Ee(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Ce(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=Le(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=Pe(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=Me(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,He(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[je("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=We(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return Fe.call(this)}}]),t}();Ze.Utils=("undefined"!=typeof window?window:global).PopperUtils,Ze.placements=Ye,Ze.Defaults=ze;var $e="dropdown",Je="bs.dropdown",tn="."+Je,en=new RegExp("38|40|27"),nn={HIDE:"hide"+tn,HIDDEN:"hidden"+tn,SHOW:"show"+tn,SHOWN:"shown"+tn,CLICK:"click"+tn,CLICK_DATA_API:"click"+tn+".data-api",KEYDOWN_DATA_API:"keydown"+tn+".data-api",KEYUP_DATA_API:"keyup"+tn+".data-api"},on="disabled",rn="show",sn="dropup",an="dropright",ln="dropleft",cn="dropdown-menu-right",fn="position-static",un='[data-toggle="dropdown"]',hn=".dropdown form",dn=".dropdown-menu",pn=".navbar-nav",gn=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",mn="top-start",_n="top-end",vn="bottom-start",yn="bottom-end",bn="right-start",En="left-start",wn={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Dn={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Tn=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),E.setData(t,Je,this)}var n=t.prototype;return n.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(on)){var e=t._getParentFromElement(this._element),n=this._menu.classList.contains(rn);if(t._clearMenus(),!n){var i={relatedTarget:this._element};if(!Q.trigger(e,nn.SHOW,i).defaultPrevented){if(!this._inNavbar){if("undefined"==typeof Ze)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var o=this._element;"parent"===this._config.reference?o=e:d(this._config.reference)&&(o=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add(fn),this._popper=new Ze(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!m(G.closest(e,pn)).length&&m(document.body.children).forEach(function(t){return Q.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),_t.toggleClass(this._menu,rn),_t.toggleClass(e,rn),Q.trigger(e,nn.SHOWN,i)}}}},n.show=function(){if(!(this._element.disabled||this._element.classList.contains(on)||this._menu.classList.contains(rn))){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};Q.trigger(e,nn.SHOW,n).defaultPrevented||(_t.toggleClass(this._menu,rn),_t.toggleClass(e,rn),Q.trigger(e,nn.SHOWN,n))}},n.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(on)&&this._menu.classList.contains(rn)){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};Q.trigger(e,nn.HIDE,n).defaultPrevented||(_t.toggleClass(this._menu,rn),_t.toggleClass(e,rn),Q.trigger(e,nn.HIDDEN,n))}},n.dispose=function(){E.removeData(this._element,Je),Q.off(this._element,tn),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},n.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},n._addEventListeners=function(){var t=this;Q.on(this._element,nn.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},n._getConfig=function(t){return t=i({},this.constructor.Default,_t.getDataAttributes(this._element),t),g($e,t,this.constructor.DefaultType),t},n._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=G.findOne(dn,e))}return this._menu},n._getPlacement=function(){var t=this._element.parentNode,e=vn;return t.classList.contains(sn)?(e=mn,this._menu.classList.contains(cn)&&(e=_n)):t.classList.contains(an)?e=bn:t.classList.contains(ln)?e=En:this._menu.classList.contains(cn)&&(e=yn),e},n._detectNavbar=function(){return Boolean(G.closest(this._element,".navbar"))},n._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=i({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},n._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}),t},t._dropdownInterface=function(e,n){var i=E.getData(e,Je);if(i||(i=new t(e,"object"==typeof n?n:null)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._dropdownInterface(this,e)})},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=m(G.find(un)),i=0,o=n.length;i<o;i++){var r=t._getParentFromElement(n[i]),s=E.getData(n[i],Je),a={relatedTarget:n[i]};if(e&&"click"===e.type&&(a.clickEvent=e),s){var l=s._menu;if(r.classList.contains(rn))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&r.contains(e.target)))Q.trigger(r,nn.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){return Q.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(rn),r.classList.remove(rn),Q.trigger(r,nn.HIDDEN,a))}}},t._getParentFromElement=function(t){var e,n=f(t);return n&&(e=G.findOne(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||G.closest(e.target,dn))):en.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains(on))){var n=t._getParentFromElement(this),i=n.classList.contains(rn);if(!i||i&&(27===e.which||32===e.which))return 27===e.which&&Q.trigger(G.findOne(un,n),"focus"),void t._clearMenus();var o=m(G.find(gn,n));if(o.length){var r=o.indexOf(e.target);38===e.which&&r>0&&r--,40===e.which&&r<o.length-1&&r++,r<0&&(r=0),o[r].focus()}}},t._getInstance=function(t){return E.getData(t,Je)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return wn}},{key:"DefaultType",get:function(){return Dn}}]),t}();if(Q.on(document,nn.KEYDOWN_DATA_API,un,Tn._dataApiKeydownHandler),Q.on(document,nn.KEYDOWN_DATA_API,dn,Tn._dataApiKeydownHandler),Q.on(document,nn.CLICK_DATA_API,Tn._clearMenus),Q.on(document,nn.KEYUP_DATA_API,Tn._clearMenus),Q.on(document,nn.CLICK_DATA_API,un,function(t){t.preventDefault(),t.stopPropagation(),Tn._dropdownInterface(this,"toggle")}),Q.on(document,nn.CLICK_DATA_API,hn,function(t){return t.stopPropagation()}),"undefined"!=typeof l){var In=l.fn[$e];l.fn[$e]=Tn._jQueryInterface,l.fn[$e].Constructor=Tn,l.fn[$e].noConflict=function(){return l.fn[$e]=In,Tn._jQueryInterface}}var An="bs.modal",On="."+An,Sn={backdrop:!0,keyboard:!0,focus:!0,show:!0},Ln={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Cn={HIDE:"hide"+On,HIDDEN:"hidden"+On,SHOW:"show"+On,SHOWN:"shown"+On,FOCUSIN:"focusin"+On,RESIZE:"resize"+On,CLICK_DISMISS:"click.dismiss"+On,KEYDOWN_DISMISS:"keydown.dismiss"+On,MOUSEUP_DISMISS:"mouseup.dismiss"+On,MOUSEDOWN_DISMISS:"mousedown.dismiss"+On,CLICK_DATA_API:"click"+On+".data-api"},Nn="modal-dialog-scrollable",kn="modal-scrollbar-measure",Pn="modal-backdrop",xn="modal-open",Mn="fade",Hn="show",jn={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Rn=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=G.findOne(jn.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,E.setData(t,An,this)}var n=t.prototype;return n.toggle=function(t){return this._isShown?this.hide():this.show(t)},n.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(Mn)&&(this._isTransitioning=!0);var n=Q.trigger(this._element,Cn.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),Q.on(this._element,Cn.CLICK_DISMISS,jn.DATA_DISMISS,function(t){return e.hide(t)}),Q.on(this._dialog,Cn.MOUSEDOWN_DISMISS,function(){Q.one(e._element,Cn.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},n.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=Q.trigger(this._element,Cn.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(Mn);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Q.off(document,Cn.FOCUSIN),this._element.classList.remove(Hn),Q.off(this._element,Cn.CLICK_DISMISS),Q.off(this._dialog,Cn.MOUSEDOWN_DISMISS),i){var o=u(this._element);Q.one(this._element,a,function(t){return e._hideModal(t)}),p(this._element,o)}else this._hideModal()}}},n.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return Q.off(t,On)}),Q.off(document,Cn.FOCUSIN),E.removeData(this._element,An),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=i({},Sn,t),g("modal",t,Ln),t},n._showElement=function(t){var e=this,n=this._element.classList.contains(Mn);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(Nn)?G.findOne(jn.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&y(this._element),this._element.classList.add(Hn),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Q.trigger(e._element,Cn.SHOWN,{relatedTarget:t})};if(n){var o=u(this._dialog);Q.one(this._dialog,a,i),p(this._dialog,o)}else i()},n._enforceFocus=function(){var t=this;Q.off(document,Cn.FOCUSIN),Q.on(document,Cn.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},n._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?Q.on(this._element,Cn.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||Q.off(this._element,Cn.KEYDOWN_DISMISS)},n._setResizeEvent=function(){var t=this;this._isShown?Q.on(window,Cn.RESIZE,function(e){return t.handleUpdate(e)}):Q.off(window,Cn.RESIZE)},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(xn),t._resetAdjustments(),t._resetScrollbar(),Q.trigger(t._element,Cn.HIDDEN)})},n._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},n._showBackdrop=function(t){var e=this,n=this._element.classList.contains(Mn)?Mn:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=Pn,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),Q.on(this._element,Cn.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&y(this._backdrop),this._backdrop.classList.add(Hn),!t)return;if(!n)return void t();var i=u(this._backdrop);Q.one(this._backdrop,a,t),p(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(Hn);var o=function(){e._removeBackdrop(),t&&t()};if(this._element.classList.contains(Mn)){var r=u(this._backdrop);Q.one(this._backdrop,a,o),p(this._backdrop,r)}else o()}else t&&t()},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){m(G.find(jn.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];_t.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),m(G.find(jn.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];_t.setDataAttribute(e,"margin-right",n),e.style.marginRight=parseFloat(i)-t._scrollbarWidth+"px"});var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];_t.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(xn)},n._resetScrollbar=function(){m(G.find(jn.FIXED_CONTENT)).forEach(function(t){var e=_t.getDataAttribute(t,"padding-right");"undefined"!=typeof e&&(_t.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),m(G.find(""+jn.STICKY_CONTENT)).forEach(function(t){var e=_t.getDataAttribute(t,"margin-right");"undefined"!=typeof e&&(_t.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=_t.getDataAttribute(document.body,"padding-right");"undefined"==typeof t?document.body.style.paddingRight="":(_t.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className=kn,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each(function(){var o=E.getData(this,An),r=i({},Sn,_t.getDataAttributes(this),"object"==typeof e&&e?e:{});if(o||(o=new t(this,r)),"string"==typeof e){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e](n)}else r.show&&o.show(n)})},t._getInstance=function(t){return E.getData(t,An)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Sn}}]),t}();if(Q.on(document,Cn.CLICK_DATA_API,jn.DATA_TOGGLE,function(t){var e,n=this,o=f(this);o&&(e=G.findOne(o));var r=E.getData(e,An)?"toggle":i({},_t.getDataAttributes(e),_t.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),Q.one(e,Cn.SHOW,function(t){t.defaultPrevented||Q.one(e,Cn.HIDDEN,function(){_(n)&&n.focus()})});var s=E.getData(e,An);s||(s=new Rn(e,r)),s.show(this)}),"undefined"!=typeof l){var Wn=l.fn.modal;l.fn.modal=Rn._jQueryInterface,l.fn.modal.Constructor=Rn,l.fn.modal.noConflict=function(){return l.fn.modal=Wn,Rn._jQueryInterface}}var Fn=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Un=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Bn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Kn=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Fn.indexOf(n)||Boolean(t.nodeValue.match(Un)||t.nodeValue.match(Bn));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1},Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Yn(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=m(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(s))return i.parentNode.removeChild(i),"continue";var a=m(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach(function(t){Kn(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}var Qn="tooltip",Gn=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Xn=["sanitize","whiteList","sanitizeFn"],qn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},zn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Zn={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Vn},$n="show",Jn="out",ti={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"},ei="fade",ni="show",ii=".tooltip-inner",oi=".tooltip-arrow",ri="hover",si="focus",ai="click",li="manual",ci=function(){function t(t,e){if("undefined"==typeof Ze)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(),E.setData(t,this.constructor.DATA_KEY,this)}var n=t.prototype;return n.enable=function(){this._isEnabled=!0},n.disable=function(){this._isEnabled=!1},n.toggleEnabled=function(){this._isEnabled=!this._isEnabled},n.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=E.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(ni))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),E.removeData(this.element,this.constructor.DATA_KEY),Q.off(this.element,this.constructor.EVENT_KEY),Q.off(G.closest(this.element,".modal"),"hide.bs.modal"),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},n.show=function(){var t=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var e=Q.trigger(this.element,this.constructor.Event.SHOW),n=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this.element),i=null===n?this.element.ownerDocument.documentElement.contains(this.element):n.contains(this.element);if(e.defaultPrevented||!i)return;var o=this.getTipElement(),r=c(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&o.classList.add(ei);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,l=this._getAttachment(s);this.addAttachmentClass(l);var f=this._getContainer();E.setData(o,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||f.appendChild(o),Q.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new Ze(this.element,o,{placement:l,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:oi},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}}),o.classList.add(ni),"ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){Q.on(t,"mouseover",function(){})});var h=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,Q.trigger(t.element,t.constructor.Event.SHOWN),e===Jn&&t._leave(null,t)};if(this.tip.classList.contains(ei)){var d=u(this.tip);Q.one(this.tip,a,h),p(this.tip,d)}else h()}},n.hide=function(t){var e=this,n=this.getTipElement(),i=function(){e._hoverState!==$n&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),Q.trigger(e.element,e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(!Q.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(ni),"ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){return Q.off(t,"mouseover",v)}),this._activeTrigger[ai]=!1,this._activeTrigger[si]=!1,this._activeTrigger[ri]=!1,this.tip.classList.contains(ei)){var o=u(n);Q.one(n,a,i),p(n,o)}else i();this._hoverState=""}},n.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},n.isWithContent=function(){return Boolean(this.getTitle())},n.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},n.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},n.setContent=function(){var t=this.getTipElement();this.setElementContent(G.findOne(ii,t),this.getTitle()),t.classList.remove(ei),t.classList.remove(ni)},n.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&(e.nodeType||e.jquery)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Yn(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},n.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},n._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=i({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},n._getContainer=function(){return!1===this.config.container?document.body:d(this.config.container)?this.config.container:G.findOne(this.config.container)},n._getAttachment=function(t){return zn[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)Q.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==li){var n=e===ri?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===ri?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;Q.on(t.element,n,t.config.selector,function(e){return t._enter(e)}),Q.on(t.element,i,t.config.selector,function(e){return t._leave(e)})}}),Q.on(G.closest(this.element,".modal"),"hide.bs.modal",function(){t.element&&t.hide()}),this.config.selector?this.config=i({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},n._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",""))},n._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||E.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?si:ri]=!0),e.getTipElement().classList.contains(ni)||e._hoverState===$n?e._hoverState=$n:(clearTimeout(e._timeout),e._hoverState=$n,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===$n&&e.show()},e.config.delay.show):e.show())},n._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||E.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?si:ri]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Jn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===Jn&&e.hide()},e.config.delay.hide):e.hide())},n._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},n._getConfig=function(t){var e=_t.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==Xn.indexOf(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=i({},this.constructor.Default,e,"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()),g(Qn,t,this.constructor.DefaultType),t.sanitize&&(t.template=Yn(t.template,t.whiteList,t.sanitizeFn)),t},n._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},n._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Gn);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},n._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},n._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(ei),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,"bs.tooltip"),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return E.getData(t,"bs.tooltip")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Zn}},{key:"NAME",get:function(){return Qn}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return ti}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return qn}}]),t}();if("undefined"!=typeof l){var fi=l.fn.tooltip;l.fn.tooltip=ci._jQueryInterface,l.fn.tooltip.Constructor=ci,l.fn.tooltip.noConflict=function(){return l.fn.tooltip=fi,ci._jQueryInterface}}var ui="popover",hi=new RegExp("(^|\\s)bs-popover\\S+","g"),di=i({},ci.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),pi=i({},ci.DefaultType,{content:"(string|element|function)"}),gi="fade",mi="show",_i=".popover-header",vi=".popover-body",yi={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"},bi=function(t){var n,i;function o(){return t.apply(this,arguments)||this}i=t,(n=o).prototype=Object.create(i.prototype),n.prototype.constructor=n,n.__proto__=i;var r=o.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},r.setContent=function(){var t=this.getTipElement();this.setElementContent(G.findOne(_i,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(G.findOne(vi,t),e),t.classList.remove(gi),t.classList.remove(mi)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(hi);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=E.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),E.setData(this,"bs.popover",e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o._getInstance=function(t){return E.getData(t,"bs.popover")},e(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return di}},{key:"NAME",get:function(){return ui}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return yi}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return pi}}]),o}(ci);if("undefined"!=typeof l){var Ei=l.fn.popover;l.fn.popover=bi._jQueryInterface,l.fn.popover.Constructor=bi,l.fn.popover.noConflict=function(){return l.fn.popover=Ei,bi._jQueryInterface}}var wi="scrollspy",Di="bs.scrollspy",Ti="."+Di,Ii={offset:10,method:"auto",target:""},Ai={offset:"number",method:"string",target:"(string|element)"},Oi={ACTIVATE:"activate"+Ti,SCROLL:"scroll"+Ti,LOAD_DATA_API:"load"+Ti+".data-api"},Si={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},Li={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},Ci="offset",Ni="position",ki=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+Li.NAV_LINKS+","+this._config.target+" "+Li.LIST_ITEMS+","+this._config.target+" ."+Si.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Q.on(this._scrollElement,Oi.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),E.setData(t,Di,this)}var n=t.prototype;return n.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Ci:Ni,n="auto"===this._config.method?e:this._config.method,i=n===Ni?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),m(G.find(this._selector)).map(function(t){var e,o=f(t);if(o&&(e=G.findOne(o)),e){var r=e.getBoundingClientRect();if(r.width||r.height)return[_t[n](e).top+i,o]}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,Di),Q.off(this._scrollElement,Ti),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=i({},Ii,"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=c(wi),t.target.id=e),t.target="#"+e}return g(wi,t,Ai),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&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},n._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),n=G.findOne(e.join(","));n.classList.contains(Si.DROPDOWN_ITEM)?(G.findOne(Li.DROPDOWN_TOGGLE,G.closest(n,Li.DROPDOWN)).classList.add(Si.ACTIVE),n.classList.add(Si.ACTIVE)):(n.classList.add(Si.ACTIVE),G.parents(n,Li.NAV_LIST_GROUP).forEach(function(t){G.prev(t,Li.NAV_LINKS+", "+Li.LIST_ITEMS).forEach(function(t){return t.classList.add(Si.ACTIVE)}),G.prev(t,Li.NAV_ITEMS).forEach(function(t){G.children(t,Li.NAV_LINKS).forEach(function(t){return t.classList.add(Si.ACTIVE)})})})),Q.trigger(this._scrollElement,Oi.ACTIVATE,{relatedTarget:t})},n._clear=function(){m(G.find(this._selector)).filter(function(t){return t.classList.contains(Si.ACTIVE)}).forEach(function(t){return t.classList.remove(Si.ACTIVE)})},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,Di);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return E.getData(t,Di)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ii}}]),t}();if(Q.on(window,Oi.LOAD_DATA_API,function(){m(G.find(Li.DATA_SPY)).forEach(function(t){return new ki(t,_t.getDataAttributes(t))})}),"undefined"!=typeof l){var Pi=l.fn[wi];l.fn[wi]=ki._jQueryInterface,l.fn[wi].Constructor=ki,l.fn[wi].noConflict=function(){return l.fn[wi]=Pi,ki._jQueryInterface}}var xi="bs.tab",Mi="."+xi,Hi={HIDE:"hide"+Mi,HIDDEN:"hidden"+Mi,SHOW:"show"+Mi,SHOWN:"shown"+Mi,CLICK_DATA_API:"click"+Mi+".data-api"},ji="dropdown-menu",Ri="active",Wi="disabled",Fi="fade",Ui="show",Bi=".dropdown",Ki=".nav, .list-group",Vi=".active",Yi=":scope > li > .active",Qi='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Gi=".dropdown-toggle",Xi=":scope > .dropdown-menu .active",qi=function(){function t(t){this._element=t,E.setData(this._element,xi,this)}var n=t.prototype;return n.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Ri)||this._element.classList.contains(Wi))){var e,n,i=G.closest(this._element,Ki),o=f(this._element);if(i){var r="UL"===i.nodeName||"OL"===i.nodeName?Yi:Vi;n=(n=m(G.find(r,i)))[n.length-1]}var s=null;if(n&&(s=Q.trigger(n,Hi.HIDE,{relatedTarget:this._element})),!(Q.trigger(this._element,Hi.SHOW,{relatedTarget:n}).defaultPrevented||null!==s&&s.defaultPrevented)){o&&(e=G.findOne(o)),this._activate(this._element,i);var a=function(){Q.trigger(n,Hi.HIDDEN,{relatedTarget:t._element}),Q.trigger(t._element,Hi.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},n.dispose=function(){E.removeData(this._element,xi),this._element=null},n._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?G.children(e,Vi):G.find(Yi,e))[0],r=n&&o&&o.classList.contains(Fi),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var l=u(o);o.classList.remove(Ui),Q.one(o,a,s),p(o,l)}else s()},n._transitionComplete=function(t,e,n){if(e){e.classList.remove(Ri);var i=G.findOne(Xi,e.parentNode);i&&i.classList.remove(Ri),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(Ri),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),y(t),t.classList.contains(Fi)&&t.classList.add(Ui),t.parentNode&&t.parentNode.classList.contains(ji))&&(G.closest(t,Bi)&&m(G.find(Gi)).forEach(function(t){return t.classList.add(Ri)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,xi)||new t(this);if("string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return E.getData(t,xi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(Q.on(document,Hi.CLICK_DATA_API,Qi,function(t){t.preventDefault(),(E.getData(this,xi)||new qi(this)).show()}),"undefined"!=typeof l){var zi=l.fn.tab;l.fn.tab=qi._jQueryInterface,l.fn.tab.Constructor=qi,l.fn.tab.noConflict=function(){return l.fn.tab=zi,qi._jQueryInterface}}var Zi="bs.toast",$i="."+Zi,Ji={CLICK_DISMISS:"click.dismiss"+$i,HIDE:"hide"+$i,HIDDEN:"hidden"+$i,SHOW:"show"+$i,SHOWN:"shown"+$i},to="fade",eo="hide",no="show",io="showing",oo={animation:"boolean",autohide:"boolean",delay:"number"},ro={animation:!0,autohide:!0,delay:500},so='[data-dismiss="toast"]',ao=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),E.setData(t,Zi,this)}var n=t.prototype;return n.show=function(){var t=this;Q.trigger(this._element,Ji.SHOW),this._config.animation&&this._element.classList.add(to);var e=function(){t._element.classList.remove(io),t._element.classList.add(no),Q.trigger(t._element,Ji.SHOWN),t._config.autohide&&(t._timeout=setTimeout(function(){t.hide()},t._config.delay))};if(this._element.classList.remove(eo),this._element.classList.add(io),this._config.animation){var n=u(this._element);Q.one(this._element,a,e),p(this._element,n)}else e()},n.hide=function(){var t=this;if(this._element.classList.contains(no)){Q.trigger(this._element,Ji.HIDE);var e=function(){t._element.classList.add(eo),Q.trigger(t._element,Ji.HIDDEN)};if(this._element.classList.remove(no),this._config.animation){var n=u(this._element);Q.one(this._element,a,e),p(this._element,n)}else e()}},n.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(no)&&this._element.classList.remove(no),Q.off(this._element,Ji.CLICK_DISMISS),E.removeData(this._element,Zi),this._element=null,this._config=null},n._getConfig=function(t){return t=i({},ro,_t.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),g("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;Q.on(this._element,Ji.CLICK_DISMISS,so,function(){return t.hide()})},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,Zi);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}})},t._getInstance=function(t){return E.getData(t,Zi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return oo}},{key:"Default",get:function(){return ro}}]),t}();if("undefined"!=typeof l){var lo=l.fn.toast;l.fn.toast=ao._jQueryInterface,l.fn.toast.Constructor=ao,l.fn.toast.noConflict=function(){return l.fn.toast=lo,ao._jQueryInterface}}return{Alert:tt,Button:dt,Carousel:Rt,Collapse:Jt,Dropdown:Tn,Modal:Rn,Popover:bi,ScrollSpy:ki,Tab:qi,Toast:ao,Tooltip:ci}}); //# sourceMappingURL=bootstrap.bundle.min.js.map
\ No newline at end of file diff --git a/dist/js/bootstrap.bundle.min.js.map b/dist/js/bootstrap.bundle.min.js.map index b94d5f9ff1..84c2720a62 100644 --- a/dist/js/bootstrap.bundle.min.js.map +++ b/dist/js/bootstrap.bundle.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"names":["storeData","id","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","_window$getComputedSt","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","e","defaultPreventedPreservedOnDispatch","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","this","hasId","Boolean","replace","removeAttribute","matches","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","findHandler","events","handler","delegationSelector","uidList","i","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","SelectorEngine","documentElement","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","isBrowser","longerTimeoutBrowsers","timeoutDuration","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","css","ownerDocument","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","bottom","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","_ref","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","console","warn","enabled","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","toCheck","getWindow","setupEventListeners","options","updateBound","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","update","isDestroyed","isCreated","enableEventListeners","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","boundary","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","referenceElement","_getPopperConfig","destroy","stopPropagation","constructor","_getPlacement","parentDropdown","_getOffset","popperConfig","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","elName","attributeList","whitelistedAttributes","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_handlePopperPlacementChange","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","token","tClass","popperData","popperInstance","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","spy","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast","withoutTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n })()\n\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n }\n\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!Polyfill.defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.7\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"names":["storeData","id","e","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","_window$getComputedSt","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","CustomEvent","bubbles","cancelable","detail","initCustomEvent","preventDefault","defaultPrevented","origPreventDefault","Event","this","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","findHandler","events","handler","delegationSelector","_i","_Object$keys","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","i","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","SelectorEngine","documentElement","findFn","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","isBrowser","longerTimeoutBrowsers","timeoutDuration","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","css","ownerDocument","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","createClass","defineProperties","props","descriptor","enumerable","writable","protoProps","staticProps","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","bottom","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","_ref","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","console","warn","enabled","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","toCheck","getWindow","setupEventListeners","options","updateBound","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","update","isDestroyed","isCreated","enableEventListeners","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","boundary","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","referenceElement","_getPopperConfig","destroy","stopPropagation","constructor","_getPlacement","parentDropdown","_getOffset","popperConfig","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","elName","attributeList","whitelistedAttributes","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_handlePopperPlacementChange","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","token","tClass","popperData","popperInstance","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","spy","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n for (const uid of Object.keys(events)) {\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.15.0\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file diff --git a/dist/js/bootstrap.esm.js b/dist/js/bootstrap.esm.js index 0841fb2e2a..c933dab324 100644 --- a/dist/js/bootstrap.esm.js +++ b/dist/js/bootstrap.esm.js @@ -5,19 +5,77 @@ */ import Popper from 'popper.js'; +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + var ownKeys = Object.keys(source); + + if (typeof Object.getOwnPropertySymbols === 'function') { + ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + } + + ownKeys.forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } + + return target; +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + /** * -------------------------------------------------------------------------- * Bootstrap (v4.3.1): util/index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ -const MAX_UID = 1000000; -const MILLISECONDS_MULTIPLIER = 1000; -const TRANSITION_END = 'transitionend'; -const _window = window, - jQuery = _window.jQuery; // Shoutout AngusCroll (https://goo.gl/pxwQGp) - -const toType = obj => ({}).toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); +var MAX_UID = 1000000; +var MILLISECONDS_MULTIPLIER = 1000; +var TRANSITION_END = 'transitionend'; +var _window = window, + jQuery = _window.jQuery; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + +var toType = function toType(obj) { + return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); +}; /** * -------------------------------------------------------------------------- * Public Util Api @@ -25,7 +83,7 @@ const toType = obj => ({}).toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCas */ -const getUID = prefix => { +var getUID = function getUID(prefix) { do { // eslint-disable-next-line no-bitwise prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here @@ -34,11 +92,11 @@ const getUID = prefix => { return prefix; }; -const getSelectorFromElement = element => { - let selector = element.getAttribute('data-target'); +var getSelectorFromElement = function getSelectorFromElement(element) { + var selector = element.getAttribute('data-target'); if (!selector || selector === '#') { - const hrefAttr = element.getAttribute('href'); + var hrefAttr = element.getAttribute('href'); selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''; } @@ -49,18 +107,18 @@ const getSelectorFromElement = element => { } }; -const getTransitionDurationFromElement = element => { +var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) { if (!element) { return 0; } // Get transition-duration of the element - let _window$getComputedSt = window.getComputedStyle(element), + var _window$getComputedSt = window.getComputedStyle(element), transitionDuration = _window$getComputedSt.transitionDuration, transitionDelay = _window$getComputedSt.transitionDelay; - const floatTransitionDuration = parseFloat(transitionDuration); - const floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found + var floatTransitionDuration = parseFloat(transitionDuration); + var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found if (!floatTransitionDuration && !floatTransitionDelay) { return 0; @@ -72,16 +130,20 @@ const getTransitionDurationFromElement = element => { return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; }; -const triggerTransitionEnd = element => { - element.dispatchEvent(new Event(TRANSITION_END)); +var triggerTransitionEnd = function triggerTransitionEnd(element) { + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(TRANSITION_END, true, true); + element.dispatchEvent(evt); }; -const isElement = obj => (obj[0] || obj).nodeType; +var isElement = function isElement(obj) { + return (obj[0] || obj).nodeType; +}; -const emulateTransitionEnd = (element, duration) => { - let called = false; - const durationPadding = 5; - const emulatedDuration = duration + durationPadding; +var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { + var called = false; + var durationPadding = 5; + var emulatedDuration = duration + durationPadding; function listener() { called = true; @@ -89,26 +151,26 @@ const emulateTransitionEnd = (element, duration) => { } element.addEventListener(TRANSITION_END, listener); - setTimeout(() => { + setTimeout(function () { if (!called) { triggerTransitionEnd(element); } }, emulatedDuration); }; -const typeCheckConfig = (componentName, config, configTypes) => { - Object.keys(configTypes).forEach(property => { - const expectedTypes = configTypes[property]; - const value = config[property]; - const valueType = value && isElement(value) ? 'element' : toType(value); +var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) { + Object.keys(configTypes).forEach(function (property) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = value && isElement(value) ? 'element' : toType(value); if (!new RegExp(expectedTypes).test(valueType)) { - throw new Error(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`); + throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); } }); }; -const makeArray = nodeList => { +var makeArray = function makeArray(nodeList) { if (!nodeList) { return []; } @@ -116,7 +178,7 @@ const makeArray = nodeList => { return [].slice.call(nodeList); }; -const isVisible = element => { +var isVisible = function isVisible(element) { if (!element) { return false; } @@ -128,14 +190,14 @@ const isVisible = element => { return false; }; -const findShadowRoot = element => { +var findShadowRoot = function findShadowRoot(element) { if (!document.documentElement.attachShadow) { return null; } // Can find the shadow root otherwise it'll return the document if (typeof element.getRootNode === 'function') { - const root = element.getRootNode(); + var root = element.getRootNode(); return root instanceof ShadowRoot ? root : null; } @@ -152,9 +214,13 @@ const findShadowRoot = element => { }; // eslint-disable-next-line no-empty-function -const noop = () => function () {}; +var noop = function noop() { + return function () {}; +}; -const reflow = element => element.offsetHeight; +var reflow = function reflow(element) { + return element.offsetHeight; +}; /** * -------------------------------------------------------------------------- @@ -168,28 +234,27 @@ const reflow = element => element.offsetHeight; * Constants * ------------------------------------------------------------------------ */ -const mapData = (() => { - const storeData = {}; - let id = 1; +var mapData = function () { + var storeData = {}; + var id = 1; return { - set(element, key, data) { + set: function set(element, key, data) { if (typeof element.key === 'undefined') { element.key = { - key, - id + key: key, + id: id }; id++; } storeData[element.key.id] = data; }, - - get(element, key) { + get: function get(element, key) { if (!element || typeof element.key === 'undefined') { return null; } - const keyProperties = element.key; + var keyProperties = element.key; if (keyProperties.key === key) { return storeData[keyProperties.id]; @@ -197,122 +262,171 @@ const mapData = (() => { return null; }, - - delete(element, key) { + delete: function _delete(element, key) { if (typeof element.key === 'undefined') { return; } - const keyProperties = element.key; + var keyProperties = element.key; if (keyProperties.key === key) { delete storeData[keyProperties.id]; delete element.key; } } - }; -})(); +}(); -const Data = { - setData(instance, key, data) { +var Data = { + setData: function setData(instance, key, data) { mapData.set(instance, key, data); }, - - getData(instance, key) { + getData: function getData(instance, key) { return mapData.get(instance, key); }, - - removeData(instance, key) { + removeData: function removeData(instance, key) { mapData.delete(instance, key); } +}; +/* istanbul ignore file */ +var _Element$prototype = Element.prototype, + matches = _Element$prototype.matches, + closest = _Element$prototype.closest; +var find = Element.prototype.querySelectorAll; +var findOne = Element.prototype.querySelector; + +var createCustomEvent = function createCustomEvent(eventName, params) { + var cEvent = new CustomEvent(eventName, params); + return cEvent; }; -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.3.1): dom/polyfill.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ -/* istanbul ignore next */ +if (typeof window.CustomEvent !== 'function') { + createCustomEvent = function createCustomEvent(eventName, params) { + params = params || { + bubbles: false, + cancelable: false, + detail: null + }; + var evt = document.createEvent('CustomEvent'); + evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail); + return evt; + }; +} + +var workingDefaultPrevented = function () { + var e = document.createEvent('CustomEvent'); + e.initEvent('Bootstrap', true, true); + e.preventDefault(); + return e.defaultPrevented; +}(); + +if (!workingDefaultPrevented) { + var origPreventDefault = Event.prototype.preventDefault; + + Event.prototype.preventDefault = function () { + if (!this.cancelable) { + return; + } -const Polyfill = (() => { - // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached - const defaultPreventedPreservedOnDispatch = (() => { - const e = new CustomEvent('Bootstrap', { - cancelable: true + origPreventDefault.call(this); + Object.defineProperty(this, 'defaultPrevented', { + get: function get() { + return true; + }, + configurable: true }); - const element = document.createElement('div'); - element.addEventListener('Bootstrap', () => null); - e.preventDefault(); - element.dispatchEvent(e); - return e.defaultPrevented; - })(); + }; +} // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached - let find = Element.prototype.querySelectorAll; - let findOne = Element.prototype.querySelector; - const scopeSelectorRegex = /:scope\b/; - const supportScopeQuery = (() => { - const element = document.createElement('div'); +var defaultPreventedPreservedOnDispatch = function () { + var e = createCustomEvent('Bootstrap', { + cancelable: true + }); + var element = document.createElement('div'); + element.addEventListener('Bootstrap', function () { + return null; + }); + e.preventDefault(); + element.dispatchEvent(e); + return e.defaultPrevented; +}(); - try { - element.querySelectorAll(':scope *'); - } catch (error) { - return false; - } +if (!matches) { + matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; +} - return true; - })(); +if (!closest) { + closest = function closest(selector) { + var element = this; - if (!supportScopeQuery) { - find = function find(selector) { - if (!scopeSelectorRegex.test(selector)) { - return this.querySelectorAll(selector); + do { + if (matches.call(element, selector)) { + return element; } - const hasId = Boolean(this.id); + element = element.parentElement || element.parentNode; + } while (element !== null && element.nodeType === 1); - if (!hasId) { - this.id = getUID('scope'); - } + return null; + }; +} - let nodeList = null; +var scopeSelectorRegex = /:scope\b/; - try { - selector = selector.replace(scopeSelectorRegex, `#${this.id}`); - nodeList = this.querySelectorAll(selector); - } finally { - if (!hasId) { - this.removeAttribute('id'); - } - } +var supportScopeQuery = function () { + var element = document.createElement('div'); - return nodeList; - }; + try { + element.querySelectorAll(':scope *'); + } catch (error) { + return false; + } - findOne = function findOne(selector) { - if (!scopeSelectorRegex.test(selector)) { - return this.querySelector(selector); - } + return true; +}(); + +if (!supportScopeQuery) { + find = function find(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelectorAll(selector); + } + + var hasId = Boolean(this.id); + + if (!hasId) { + this.id = getUID('scope'); + } - const matches = find.call(this, selector); + var nodeList = null; - if (typeof matches[0] !== 'undefined') { - return matches[0]; + try { + selector = selector.replace(scopeSelectorRegex, "#" + this.id); + nodeList = this.querySelectorAll(selector); + } finally { + if (!hasId) { + this.removeAttribute('id'); } + } - return null; - }; - } + return nodeList; + }; - return { - defaultPreventedPreservedOnDispatch, - find, - findOne + findOne = function findOne(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelector(selector); + } + + var matches = find.call(this, selector); + + if (typeof matches[0] !== 'undefined') { + return matches[0]; + } + + return null; }; -})(); +} /** * -------------------------------------------------------------------------- @@ -326,18 +440,18 @@ const Polyfill = (() => { * ------------------------------------------------------------------------ */ -const namespaceRegex = /[^.]*(?=\..*)\.|.*/; -const stripNameRegex = /\..*/; -const keyEventRegex = /^key/; -const stripUidRegex = /::\d+$/; -const eventRegistry = {}; // Events storage +var namespaceRegex = /[^.]*(?=\..*)\.|.*/; +var stripNameRegex = /\..*/; +var keyEventRegex = /^key/; +var stripUidRegex = /::\d+$/; +var eventRegistry = {}; // Events storage -let uidEvent = 1; -const customEvents = { +var uidEvent = 1; +var customEvents = { mouseenter: 'mouseover', mouseleave: 'mouseout' }; -const nativeEvents = ['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']; +var nativeEvents = ['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']; /** * ------------------------------------------------------------------------ * Private methods @@ -345,11 +459,11 @@ const nativeEvents = ['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu' */ function getUidEvent(element, uid) { - return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; + return uid && uid + "::" + uidEvent++ || element.uidEvent || uidEvent++; } function getEvent(element) { - const uid = getUidEvent(element); + var uid = getUidEvent(element); element.uidEvent = uid; eventRegistry[uid] = eventRegistry[uid] || {}; return eventRegistry[uid]; @@ -378,10 +492,10 @@ function bootstrapHandler(element, fn) { function bootstrapDelegationHandler(element, selector, fn) { return function handler(event) { - const domElements = element.querySelectorAll(selector); + var domElements = element.querySelectorAll(selector); - for (let target = event.target; target && target !== this; target = target.parentNode) { - for (let i = domElements.length; i--;) { + for (var target = event.target; target && target !== this; target = target.parentNode) { + for (var i = domElements.length; i--;) { if (domElements[i] === target) { fixEvent(event, target); @@ -404,11 +518,9 @@ function findHandler(events, handler, delegationSelector) { delegationSelector = null; } - const uidList = Object.keys(events); - - for (let i = 0; i < uidList.length; i++) { - const uid = uidList[i]; - const event = events[uid]; + for (var _i = 0, _Object$keys = Object.keys(events); _i < _Object$keys.length; _i++) { + var uid = _Object$keys[_i]; + var event = events[uid]; if (event.originalHandler === handler && event.delegationSelector === delegationSelector) { return events[uid]; @@ -419,17 +531,17 @@ function findHandler(events, handler, delegationSelector) { } function normalizeParams(originalTypeEvent, handler, delegationFn) { - const delegation = typeof handler === 'string'; - const originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click') + var delegation = typeof handler === 'string'; + var originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click') - let typeEvent = originalTypeEvent.replace(stripNameRegex, ''); - const custom = customEvents[typeEvent]; + var typeEvent = originalTypeEvent.replace(stripNameRegex, ''); + var custom = customEvents[typeEvent]; if (custom) { typeEvent = custom; } - const isNative = nativeEvents.indexOf(typeEvent) > -1; + var isNative = nativeEvents.indexOf(typeEvent) > -1; if (!isNative) { typeEvent = originalTypeEvent; @@ -448,22 +560,22 @@ function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) { delegationFn = null; } - const _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn), - delegation = _normalizeParams[0], - originalHandler = _normalizeParams[1], - typeEvent = _normalizeParams[2]; + var _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn), + delegation = _normalizeParams[0], + originalHandler = _normalizeParams[1], + typeEvent = _normalizeParams[2]; - const events = getEvent(element); - const handlers = events[typeEvent] || (events[typeEvent] = {}); - const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null); + var events = getEvent(element); + var handlers = events[typeEvent] || (events[typeEvent] = {}); + var previousFn = findHandler(handlers, originalHandler, delegation ? handler : null); if (previousFn) { previousFn.oneOff = previousFn.oneOff && oneOff; return; } - const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')); - const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler); + var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, '')); + var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler); fn.delegationSelector = delegation ? handler : null; fn.originalHandler = originalHandler; fn.oneOff = oneOff; @@ -473,7 +585,7 @@ function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) { } function removeHandler(element, events, typeEvent, handler, delegationSelector) { - const fn = findHandler(events[typeEvent], handler, delegationSelector); + var fn = findHandler(events[typeEvent], handler, delegationSelector); if (fn === null) { return; @@ -484,37 +596,35 @@ function removeHandler(element, events, typeEvent, handler, delegationSelector) } function removeNamespacedHandlers(element, events, typeEvent, namespace) { - const storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(handlerKey => { + var storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach(function (handlerKey) { if (handlerKey.indexOf(namespace) > -1) { - const event = storeElementEvent[handlerKey]; + var event = storeElementEvent[handlerKey]; removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); } }); } -const EventHandler = { - on(element, event, handler, delegationFn) { +var EventHandler = { + on: function on(element, event, handler, delegationFn) { addHandler(element, event, handler, delegationFn, false); }, - - one(element, event, handler, delegationFn) { + one: function one(element, event, handler, delegationFn) { addHandler(element, event, handler, delegationFn, true); }, - - off(element, originalTypeEvent, handler, delegationFn) { + off: function off(element, originalTypeEvent, handler, delegationFn) { if (typeof originalTypeEvent !== 'string' || !element) { return; } - const _normalizeParams2 = normalizeParams(originalTypeEvent, handler, delegationFn), - delegation = _normalizeParams2[0], - originalHandler = _normalizeParams2[1], - typeEvent = _normalizeParams2[2]; + var _normalizeParams2 = normalizeParams(originalTypeEvent, handler, delegationFn), + delegation = _normalizeParams2[0], + originalHandler = _normalizeParams2[1], + typeEvent = _normalizeParams2[2]; - const inNamespace = typeEvent !== originalTypeEvent; - const events = getEvent(element); - const isNamespace = originalTypeEvent.charAt(0) === '.'; + var inNamespace = typeEvent !== originalTypeEvent; + var events = getEvent(element); + var isNamespace = originalTypeEvent.charAt(0) === '.'; if (typeof originalHandler !== 'undefined') { // Simplest case: handler is passed, remove that listener ONLY. @@ -527,35 +637,34 @@ const EventHandler = { } if (isNamespace) { - Object.keys(events).forEach(elementEvent => { + Object.keys(events).forEach(function (elementEvent) { removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1)); }); } - const storeElementEvent = events[typeEvent] || {}; - Object.keys(storeElementEvent).forEach(keyHandlers => { - const handlerKey = keyHandlers.replace(stripUidRegex, ''); + var storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach(function (keyHandlers) { + var handlerKey = keyHandlers.replace(stripUidRegex, ''); if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) { - const event = storeElementEvent[keyHandlers]; + var event = storeElementEvent[keyHandlers]; removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); } }); }, - - trigger(element, event, args) { + trigger: function trigger(element, event, args) { if (typeof event !== 'string' || !element) { return null; } - const typeEvent = event.replace(stripNameRegex, ''); - const inNamespace = event !== typeEvent; - const isNative = nativeEvents.indexOf(typeEvent) > -1; - let jQueryEvent; - let bubbles = true; - let nativeDispatch = true; - let defaultPrevented = false; - let evt = null; + var typeEvent = event.replace(stripNameRegex, ''); + var inNamespace = event !== typeEvent; + var isNative = nativeEvents.indexOf(typeEvent) > -1; + var jQueryEvent; + var bubbles = true; + var nativeDispatch = true; + var defaultPrevented = false; + var evt = null; if (inNamespace && typeof jQuery !== 'undefined') { jQueryEvent = jQuery.Event(event, args); @@ -569,20 +678,19 @@ const EventHandler = { evt = document.createEvent('HTMLEvents'); evt.initEvent(typeEvent, bubbles, true); } else { - evt = new CustomEvent(event, { - bubbles, + evt = createCustomEvent(event, { + bubbles: bubbles, cancelable: true }); } // merge custom informations in our event if (typeof args !== 'undefined') { - Object.keys(args).forEach(key => { + Object.keys(args).forEach(function (key) { Object.defineProperty(evt, key, { - get() { + get: function get() { return args[key]; } - }); }); } @@ -590,9 +698,11 @@ const EventHandler = { if (defaultPrevented) { evt.preventDefault(); - if (!Polyfill.defaultPreventedPreservedOnDispatch) { + if (!defaultPreventedPreservedOnDispatch) { Object.defineProperty(evt, 'defaultPrevented', { - get: () => true + get: function get() { + return true; + } }); } } @@ -607,7 +717,6 @@ const EventHandler = { return evt; } - }; /** @@ -622,15 +731,12 @@ const EventHandler = { * ------------------------------------------------------------------------ */ -const findFn = Polyfill.find, - findOne = Polyfill.findOne; -const NODE_TEXT = 3; -const SelectorEngine = { - matches(element, selector) { - return element.matches(selector); +var NODE_TEXT = 3; +var SelectorEngine = { + matches: function matches$1(element, selector) { + return matches.call(element, selector); }, - - find(selector, element) { + find: function find$1(selector, element) { if (element === void 0) { element = document.documentElement; } @@ -639,10 +745,9 @@ const SelectorEngine = { return null; } - return findFn.call(element, selector); + return find.call(element, selector); }, - - findOne(selector, element) { + findOne: function findOne$1(selector, element) { if (element === void 0) { element = document.documentElement; } @@ -653,23 +758,25 @@ const SelectorEngine = { return findOne.call(element, selector); }, + children: function children(element, selector) { + var _this = this; - children(element, selector) { if (typeof selector !== 'string') { return null; } - const children = makeArray(element.children); - return children.filter(child => this.matches(child, selector)); + var children = makeArray(element.children); + return children.filter(function (child) { + return _this.matches(child, selector); + }); }, - - parents(element, selector) { + parents: function parents(element, selector) { if (typeof selector !== 'string') { return null; } - const parents = []; - let ancestor = element.parentNode; + var parents = []; + var ancestor = element.parentNode; while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) { if (this.matches(ancestor, selector)) { @@ -681,22 +788,20 @@ const SelectorEngine = { return parents; }, - - closest(element, selector) { + closest: function closest$1(element, selector) { if (typeof selector !== 'string') { return null; } - return element.closest(selector); + return closest.call(element, selector); }, - - prev(element, selector) { + prev: function prev(element, selector) { if (typeof selector !== 'string') { return null; } - const siblings = []; - let previous = element.previousSibling; + var siblings = []; + var previous = element.previousSibling; while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) { if (this.matches(previous, selector)) { @@ -708,35 +813,28 @@ const SelectorEngine = { return siblings; } - }; /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.3.1): alert.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ -/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -const NAME = 'alert'; -const VERSION = '4.3.1'; -const DATA_KEY = 'bs.alert'; -const EVENT_KEY = `.${DATA_KEY}`; -const DATA_API_KEY = '.data-api'; -const Selector = { +var NAME = 'alert'; +var VERSION = '4.3.1'; +var DATA_KEY = 'bs.alert'; +var EVENT_KEY = "." + DATA_KEY; +var DATA_API_KEY = '.data-api'; +var Selector = { DISMISS: '[data-dismiss="alert"]' }; -const Event$1 = { - CLOSE: `close${EVENT_KEY}`, - CLOSED: `closed${EVENT_KEY}`, - CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}` +var Event$1 = { + CLOSE: "close" + EVENT_KEY, + CLOSED: "closed" + EVENT_KEY, + CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY }; -const ClassName = { +var ClassName = { ALERT: 'alert', FADE: 'fade', SHOW: 'show' @@ -748,8 +846,10 @@ const ClassName = { }; -class Alert { - constructor(element) { +var Alert = +/*#__PURE__*/ +function () { + function Alert(element) { this._element = element; if (this._element) { @@ -758,53 +858,53 @@ class Alert { } // Getters - static get VERSION() { - return VERSION; - } // Public + var _proto = Alert.prototype; - - close(element) { - let rootElement = this._element; + // Public + _proto.close = function close(element) { + var rootElement = this._element; if (element) { rootElement = this._getRootElement(element); } - const customEvent = this._triggerCloseEvent(rootElement); + var customEvent = this._triggerCloseEvent(rootElement); if (customEvent === null || customEvent.defaultPrevented) { return; } this._removeElement(rootElement); - } + }; - dispose() { + _proto.dispose = function dispose() { Data.removeData(this._element, DATA_KEY); this._element = null; } // Private + ; - - _getRootElement(element) { - const selector = getSelectorFromElement(element); - let parent = false; + _proto._getRootElement = function _getRootElement(element) { + var selector = getSelectorFromElement(element); + var parent = false; if (selector) { parent = SelectorEngine.findOne(selector); } if (!parent) { - parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`); + parent = SelectorEngine.closest(element, "." + ClassName.ALERT); } return parent; - } + }; - _triggerCloseEvent(element) { + _proto._triggerCloseEvent = function _triggerCloseEvent(element) { return EventHandler.trigger(element, Event$1.CLOSE); - } + }; + + _proto._removeElement = function _removeElement(element) { + var _this = this; - _removeElement(element) { element.classList.remove(ClassName.SHOW); if (!element.classList.contains(ClassName.FADE)) { @@ -813,23 +913,25 @@ class Alert { return; } - const transitionDuration = getTransitionDurationFromElement(element); - EventHandler.one(element, TRANSITION_END, event => this._destroyElement(element, event)); + var transitionDuration = getTransitionDurationFromElement(element); + EventHandler.one(element, TRANSITION_END, function (event) { + return _this._destroyElement(element, event); + }); emulateTransitionEnd(element, transitionDuration); - } + }; - _destroyElement(element) { + _proto._destroyElement = function _destroyElement(element) { if (element.parentNode) { element.parentNode.removeChild(element); } EventHandler.trigger(element, Event$1.CLOSED); } // Static + ; - - static _jQueryInterface(config) { + Alert._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - let data = Data.getData(this, DATA_KEY); + var data = Data.getData(this, DATA_KEY); if (!data) { data = new Alert(this); @@ -839,9 +941,9 @@ class Alert { data[config](this); } }); - } + }; - static _handleDismiss(alertInstance) { + Alert._handleDismiss = function _handleDismiss(alertInstance) { return function (event) { if (event) { event.preventDefault(); @@ -849,13 +951,21 @@ class Alert { alertInstance.close(this); }; - } + }; - static _getInstance(element) { + Alert._getInstance = function _getInstance(element) { return Data.getData(element, DATA_KEY); - } + }; -} + _createClass(Alert, null, [{ + key: "VERSION", + get: function get() { + return VERSION; + } + }]); + + return Alert; +}(); /** * ------------------------------------------------------------------------ * Data Api implementation @@ -872,49 +982,43 @@ EventHandler.on(document, Event$1.CLICK_DATA_API, Selector.DISMISS, Alert._handl */ if (typeof jQuery !== 'undefined') { - const JQUERY_NO_CONFLICT = jQuery.fn[NAME]; + var JQUERY_NO_CONFLICT = jQuery.fn[NAME]; jQuery.fn[NAME] = Alert._jQueryInterface; jQuery.fn[NAME].Constructor = Alert; - jQuery.fn[NAME].noConflict = () => { + jQuery.fn[NAME].noConflict = function () { jQuery.fn[NAME] = JQUERY_NO_CONFLICT; return Alert._jQueryInterface; }; } /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.3.1): button.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ -/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -const NAME$1 = 'button'; -const VERSION$1 = '4.3.1'; -const DATA_KEY$1 = 'bs.button'; -const EVENT_KEY$1 = `.${DATA_KEY$1}`; -const DATA_API_KEY$1 = '.data-api'; -const ClassName$1 = { +var NAME$1 = 'button'; +var VERSION$1 = '4.3.1'; +var DATA_KEY$1 = 'bs.button'; +var EVENT_KEY$1 = "." + DATA_KEY$1; +var DATA_API_KEY$1 = '.data-api'; +var ClassName$1 = { ACTIVE: 'active', BUTTON: 'btn', FOCUS: 'focus' }; -const Selector$1 = { +var Selector$1 = { DATA_TOGGLE_CARROT: '[data-toggle^="button"]', DATA_TOGGLE: '[data-toggle="buttons"]', INPUT: 'input:not([type="hidden"])', ACTIVE: '.active', BUTTON: '.btn' }; -const Event$2 = { - CLICK_DATA_API: `click${EVENT_KEY$1}${DATA_API_KEY$1}`, - FOCUS_DATA_API: `focus${EVENT_KEY$1}${DATA_API_KEY$1}`, - BLUR_DATA_API: `blur${EVENT_KEY$1}${DATA_API_KEY$1}` +var Event$2 = { + CLICK_DATA_API: "click" + EVENT_KEY$1 + DATA_API_KEY$1, + FOCUS_DATA_API: "focus" + EVENT_KEY$1 + DATA_API_KEY$1, + BLUR_DATA_API: "blur" + EVENT_KEY$1 + DATA_API_KEY$1 /** * ------------------------------------------------------------------------ * Class Definition @@ -923,32 +1027,32 @@ const Event$2 = { }; -class Button { - constructor(element) { +var Button = +/*#__PURE__*/ +function () { + function Button(element) { this._element = element; Data.setData(element, DATA_KEY$1, this); } // Getters - static get VERSION() { - return VERSION$1; - } // Public + var _proto = Button.prototype; - - toggle() { - let triggerChangeEvent = true; - let addAriaPressed = true; - const rootElement = SelectorEngine.closest(this._element, Selector$1.DATA_TOGGLE); + // Public + _proto.toggle = function toggle() { + var triggerChangeEvent = true; + var addAriaPressed = true; + var rootElement = SelectorEngine.closest(this._element, Selector$1.DATA_TOGGLE); if (rootElement) { - const input = SelectorEngine.findOne(Selector$1.INPUT, this._element); + var input = SelectorEngine.findOne(Selector$1.INPUT, this._element); if (input) { if (input.type === 'radio') { if (input.checked && this._element.classList.contains(ClassName$1.ACTIVE)) { triggerChangeEvent = false; } else { - const activeElement = SelectorEngine.findOne(Selector$1.ACTIVE, rootElement); + var activeElement = SelectorEngine.findOne(Selector$1.ACTIVE, rootElement); if (activeElement) { activeElement.classList.remove(ClassName$1.ACTIVE); @@ -977,17 +1081,17 @@ class Button { if (triggerChangeEvent) { this._element.classList.toggle(ClassName$1.ACTIVE); } - } + }; - dispose() { + _proto.dispose = function dispose() { Data.removeData(this._element, DATA_KEY$1); this._element = null; } // Static + ; - - static _jQueryInterface(config) { + Button._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - let data = Data.getData(this, DATA_KEY$1); + var data = Data.getData(this, DATA_KEY$1); if (!data) { data = new Button(this); @@ -997,13 +1101,21 @@ class Button { data[config](); } }); - } + }; - static _getInstance(element) { + Button._getInstance = function _getInstance(element) { return Data.getData(element, DATA_KEY$1); - } + }; -} + _createClass(Button, null, [{ + key: "VERSION", + get: function get() { + return VERSION$1; + } + }]); + + return Button; +}(); /** * ------------------------------------------------------------------------ * Data Api implementation @@ -1011,15 +1123,15 @@ class Button { */ -EventHandler.on(document, Event$2.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, event => { +EventHandler.on(document, Event$2.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) { event.preventDefault(); - let button = event.target; + var button = event.target; if (!button.classList.contains(ClassName$1.BUTTON)) { button = SelectorEngine.closest(button, Selector$1.BUTTON); } - let data = Data.getData(button, DATA_KEY$1); + var data = Data.getData(button, DATA_KEY$1); if (!data) { data = new Button(button); @@ -1028,13 +1140,19 @@ EventHandler.on(document, Event$2.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, data.toggle(); }); -EventHandler.on(document, Event$2.FOCUS_DATA_API, Selector$1.DATA_TOGGLE_CARROT, event => { - const button = SelectorEngine.closest(event.target, Selector$1.BUTTON); - button.classList.add(ClassName$1.FOCUS); +EventHandler.on(document, Event$2.FOCUS_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) { + var button = SelectorEngine.closest(event.target, Selector$1.BUTTON); + + if (button) { + button.classList.add(ClassName$1.FOCUS); + } }); -EventHandler.on(document, Event$2.BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, event => { - const button = SelectorEngine.closest(event.target, Selector$1.BUTTON); - button.classList.remove(ClassName$1.FOCUS); +EventHandler.on(document, Event$2.BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) { + var button = SelectorEngine.closest(event.target, Selector$1.BUTTON); + + if (button) { + button.classList.remove(ClassName$1.FOCUS); + } }); /** * ------------------------------------------------------------------------ @@ -1044,34 +1162,16 @@ EventHandler.on(document, Event$2.BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, */ if (typeof jQuery !== 'undefined') { - const JQUERY_NO_CONFLICT = jQuery.fn[NAME$1]; + var JQUERY_NO_CONFLICT$1 = jQuery.fn[NAME$1]; jQuery.fn[NAME$1] = Button._jQueryInterface; jQuery.fn[NAME$1].Constructor = Button; - jQuery.fn[NAME$1].noConflict = () => { - jQuery.fn[NAME$1] = JQUERY_NO_CONFLICT; + jQuery.fn[NAME$1].noConflict = function () { + jQuery.fn[NAME$1] = JQUERY_NO_CONFLICT$1; return Button._jQueryInterface; }; } -function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); -} - /** * -------------------------------------------------------------------------- * Bootstrap (v4.3.1): dom/manipulator.js @@ -1099,51 +1199,47 @@ function normalizeData(val) { } function normalizeDataKey(key) { - return key.replace(/[A-Z]/g, chr => chr.toLowerCase()); + return key.replace(/[A-Z]/g, function (chr) { + return chr.toLowerCase(); + }); } -const Manipulator = { - setDataAttribute(element, key, value) { - element.setAttribute(`data-${normalizeDataKey(key)}`, value); +var Manipulator = { + setDataAttribute: function setDataAttribute(element, key, value) { + element.setAttribute("data-" + normalizeDataKey(key), value); }, - - removeDataAttribute(element, key) { - element.removeAttribute(`data-${normalizeDataKey(key)}`); + removeDataAttribute: function removeDataAttribute(element, key) { + element.removeAttribute("data-" + normalizeDataKey(key)); }, - - getDataAttributes(element) { + getDataAttributes: function getDataAttributes(element) { if (!element) { return {}; } - const attributes = _extends({}, element.dataset); + var attributes = _objectSpread({}, element.dataset); - Object.keys(attributes).forEach(key => { + Object.keys(attributes).forEach(function (key) { attributes[key] = normalizeData(attributes[key]); }); return attributes; }, - - getDataAttribute(element, key) { - return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`)); + getDataAttribute: function getDataAttribute(element, key) { + return normalizeData(element.getAttribute("data-" + normalizeDataKey(key))); }, - - offset(element) { - const rect = element.getBoundingClientRect(); + offset: function offset(element) { + var rect = element.getBoundingClientRect(); return { top: rect.top + document.body.scrollTop, left: rect.left + document.body.scrollLeft }; }, - - position(element) { + position: function position(element) { return { top: element.offsetTop, left: element.offsetLeft }; }, - - toggleClass(element, className) { + toggleClass: function toggleClass(element, className) { if (!element) { return; } @@ -1154,7 +1250,6 @@ const Manipulator = { element.classList.add(className); } } - }; /** @@ -1163,19 +1258,19 @@ const Manipulator = { * ------------------------------------------------------------------------ */ -const NAME$2 = 'carousel'; -const VERSION$2 = '4.3.1'; -const DATA_KEY$2 = 'bs.carousel'; -const EVENT_KEY$2 = `.${DATA_KEY$2}`; -const DATA_API_KEY$2 = '.data-api'; -const ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key +var NAME$2 = 'carousel'; +var VERSION$2 = '4.3.1'; +var DATA_KEY$2 = 'bs.carousel'; +var EVENT_KEY$2 = "." + DATA_KEY$2; +var DATA_API_KEY$2 = '.data-api'; +var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key -const ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key +var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key -const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch +var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch -const SWIPE_THRESHOLD = 40; -const Default = { +var SWIPE_THRESHOLD = 40; +var Default = { interval: 5000, keyboard: true, slide: false, @@ -1183,7 +1278,7 @@ const Default = { wrap: true, touch: true }; -const DefaultType = { +var DefaultType = { interval: '(number|boolean)', keyboard: 'boolean', slide: '(boolean|string)', @@ -1191,28 +1286,28 @@ const DefaultType = { wrap: 'boolean', touch: 'boolean' }; -const Direction = { +var Direction = { NEXT: 'next', PREV: 'prev', LEFT: 'left', RIGHT: 'right' }; -const Event$3 = { - SLIDE: `slide${EVENT_KEY$2}`, - SLID: `slid${EVENT_KEY$2}`, - KEYDOWN: `keydown${EVENT_KEY$2}`, - MOUSEENTER: `mouseenter${EVENT_KEY$2}`, - MOUSELEAVE: `mouseleave${EVENT_KEY$2}`, - TOUCHSTART: `touchstart${EVENT_KEY$2}`, - TOUCHMOVE: `touchmove${EVENT_KEY$2}`, - TOUCHEND: `touchend${EVENT_KEY$2}`, - POINTERDOWN: `pointerdown${EVENT_KEY$2}`, - POINTERUP: `pointerup${EVENT_KEY$2}`, - DRAG_START: `dragstart${EVENT_KEY$2}`, - LOAD_DATA_API: `load${EVENT_KEY$2}${DATA_API_KEY$2}`, - CLICK_DATA_API: `click${EVENT_KEY$2}${DATA_API_KEY$2}` +var Event$3 = { + SLIDE: "slide" + EVENT_KEY$2, + SLID: "slid" + EVENT_KEY$2, + KEYDOWN: "keydown" + EVENT_KEY$2, + MOUSEENTER: "mouseenter" + EVENT_KEY$2, + MOUSELEAVE: "mouseleave" + EVENT_KEY$2, + TOUCHSTART: "touchstart" + EVENT_KEY$2, + TOUCHMOVE: "touchmove" + EVENT_KEY$2, + TOUCHEND: "touchend" + EVENT_KEY$2, + POINTERDOWN: "pointerdown" + EVENT_KEY$2, + POINTERUP: "pointerup" + EVENT_KEY$2, + DRAG_START: "dragstart" + EVENT_KEY$2, + LOAD_DATA_API: "load" + EVENT_KEY$2 + DATA_API_KEY$2, + CLICK_DATA_API: "click" + EVENT_KEY$2 + DATA_API_KEY$2 }; -const ClassName$2 = { +var ClassName$2 = { CAROUSEL: 'carousel', ACTIVE: 'active', SLIDE: 'slide', @@ -1223,7 +1318,7 @@ const ClassName$2 = { ITEM: 'carousel-item', POINTER_EVENT: 'pointer-event' }; -const Selector$2 = { +var Selector$2 = { ACTIVE: '.active', ACTIVE_ITEM: '.active.carousel-item', ITEM: '.carousel-item', @@ -1233,7 +1328,7 @@ const Selector$2 = { DATA_SLIDE: '[data-slide], [data-slide-to]', DATA_RIDE: '[data-ride="carousel"]' }; -const PointerType = { +var PointerType = { TOUCH: 'touch', PEN: 'pen' /** @@ -1244,8 +1339,10 @@ const PointerType = { }; -class Carousel { - constructor(element, config) { +var Carousel = +/*#__PURE__*/ +function () { + function Carousel(element, config) { this._items = null; this._interval = null; this._activeElement = null; @@ -1266,36 +1363,30 @@ class Carousel { } // Getters - static get VERSION() { - return VERSION$2; - } - - static get Default() { - return Default; - } // Public - + var _proto = Carousel.prototype; - next() { + // Public + _proto.next = function next() { if (!this._isSliding) { this._slide(Direction.NEXT); } - } + }; - nextWhenVisible() { + _proto.nextWhenVisible = function nextWhenVisible() { // Don't call next when the page isn't visible // or the carousel or its parent isn't visible if (!document.hidden && isVisible(this._element)) { this.next(); } - } + }; - prev() { + _proto.prev = function prev() { if (!this._isSliding) { this._slide(Direction.PREV); } - } + }; - pause(event) { + _proto.pause = function pause(event) { if (!event) { this._isPaused = true; } @@ -1307,9 +1398,9 @@ class Carousel { clearInterval(this._interval); this._interval = null; - } + }; - cycle(event) { + _proto.cycle = function cycle(event) { if (!event) { this._isPaused = false; } @@ -1322,19 +1413,23 @@ class Carousel { if (this._config && this._config.interval && !this._isPaused) { this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); } - } + }; + + _proto.to = function to(index) { + var _this = this; - to(index) { this._activeElement = SelectorEngine.findOne(Selector$2.ACTIVE_ITEM, this._element); - const activeIndex = this._getItemIndex(this._activeElement); + var activeIndex = this._getItemIndex(this._activeElement); if (index > this._items.length - 1 || index < 0) { return; } if (this._isSliding) { - EventHandler.one(this._element, Event$3.SLID, () => this.to(index)); + EventHandler.one(this._element, Event$3.SLID, function () { + return _this.to(index); + }); return; } @@ -1344,12 +1439,12 @@ class Carousel { return; } - const direction = index > activeIndex ? Direction.NEXT : Direction.PREV; + var direction = index > activeIndex ? Direction.NEXT : Direction.PREV; this._slide(direction, this._items[index]); - } + }; - dispose() { + _proto.dispose = function dispose() { EventHandler.off(this._element, EVENT_KEY$2); Data.removeData(this._element, DATA_KEY$2); this._items = null; @@ -1361,22 +1456,23 @@ class Carousel { this._activeElement = null; this._indicatorsElement = null; } // Private + ; - - _getConfig(config) { - config = _extends({}, Default, config); + _proto._getConfig = function _getConfig(config) { + config = _objectSpread({}, Default, config); typeCheckConfig(NAME$2, config, DefaultType); return config; - } + }; - _handleSwipe() { - const absDeltax = Math.abs(this.touchDeltaX); + _proto._handleSwipe = function _handleSwipe() { + var absDeltax = Math.abs(this.touchDeltaX); if (absDeltax <= SWIPE_THRESHOLD) { return; } - const direction = absDeltax / this.touchDeltaX; // swipe left + var direction = absDeltax / this.touchDeltaX; + this.touchDeltaX = 0; // swipe left if (direction > 0) { this.prev(); @@ -1386,53 +1482,63 @@ class Carousel { if (direction < 0) { this.next(); } - } + }; + + _proto._addEventListeners = function _addEventListeners() { + var _this2 = this; - _addEventListeners() { if (this._config.keyboard) { - EventHandler.on(this._element, Event$3.KEYDOWN, event => this._keydown(event)); + EventHandler.on(this._element, Event$3.KEYDOWN, function (event) { + return _this2._keydown(event); + }); } if (this._config.pause === 'hover') { - EventHandler.on(this._element, Event$3.MOUSEENTER, event => this.pause(event)); - EventHandler.on(this._element, Event$3.MOUSELEAVE, event => this.cycle(event)); + EventHandler.on(this._element, Event$3.MOUSEENTER, function (event) { + return _this2.pause(event); + }); + EventHandler.on(this._element, Event$3.MOUSELEAVE, function (event) { + return _this2.cycle(event); + }); } if (this._config.touch) { this._addTouchEventListeners(); } - } + }; + + _proto._addTouchEventListeners = function _addTouchEventListeners() { + var _this3 = this; - _addTouchEventListeners() { if (!this._touchSupported) { return; } - const start = event => { - if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { - this.touchStartX = event.clientX; - } else if (!this._pointerEvent) { - this.touchStartX = event.touches[0].clientX; + var start = function start(event) { + if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { + _this3.touchStartX = event.clientX; + } else if (!_this3._pointerEvent) { + _this3.touchStartX = event.touches[0].clientX; } }; - const move = event => { + var move = function move(event) { // ensure swiping with one touch and not pinching if (event.touches && event.touches.length > 1) { - this.touchDeltaX = 0; + _this3.touchDeltaX = 0; } else { - this.touchDeltaX = event.touches[0].clientX - this.touchStartX; + _this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX; } }; - const end = event => { - if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { - this.touchDeltaX = event.clientX - this.touchStartX; + var end = function end(event) { + if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { + _this3.touchDeltaX = event.clientX - _this3.touchStartX; } - this._handleSwipe(); + _this3._handleSwipe(); - if (this._config.pause === 'hover') { + if (_this3._config.pause === 'hover') { // If it's a touch-enabled device, mouseenter/leave are fired as // part of the mouse compatibility events on first tap - the carousel // would stop cycling until user tapped out of it; @@ -1440,33 +1546,47 @@ class Carousel { // (as if it's the second time we tap on it, mouseenter compat event // is NOT fired) and after a timeout (to allow for mouse compatibility // events to fire) we explicitly restart cycling - this.pause(); + _this3.pause(); - if (this.touchTimeout) { - clearTimeout(this.touchTimeout); + if (_this3.touchTimeout) { + clearTimeout(_this3.touchTimeout); } - this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval); + _this3.touchTimeout = setTimeout(function (event) { + return _this3.cycle(event); + }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval); } }; - makeArray(SelectorEngine.find(Selector$2.ITEM_IMG, this._element)).forEach(itemImg => { - EventHandler.on(itemImg, Event$3.DRAG_START, e => e.preventDefault()); + makeArray(SelectorEngine.find(Selector$2.ITEM_IMG, this._element)).forEach(function (itemImg) { + EventHandler.on(itemImg, Event$3.DRAG_START, function (e) { + return e.preventDefault(); + }); }); if (this._pointerEvent) { - EventHandler.on(this._element, Event$3.POINTERDOWN, event => start(event)); - EventHandler.on(this._element, Event$3.POINTERUP, event => end(event)); + EventHandler.on(this._element, Event$3.POINTERDOWN, function (event) { + return start(event); + }); + EventHandler.on(this._element, Event$3.POINTERUP, function (event) { + return end(event); + }); this._element.classList.add(ClassName$2.POINTER_EVENT); } else { - EventHandler.on(this._element, Event$3.TOUCHSTART, event => start(event)); - EventHandler.on(this._element, Event$3.TOUCHMOVE, event => move(event)); - EventHandler.on(this._element, Event$3.TOUCHEND, event => end(event)); + EventHandler.on(this._element, Event$3.TOUCHSTART, function (event) { + return start(event); + }); + EventHandler.on(this._element, Event$3.TOUCHMOVE, function (event) { + return move(event); + }); + EventHandler.on(this._element, Event$3.TOUCHEND, function (event) { + return end(event); + }); } - } + }; - _keydown(event) { + _proto._keydown = function _keydown(event) { if (/input|textarea/i.test(event.target.tagName)) { return; } @@ -1484,73 +1604,75 @@ class Carousel { default: } - } + }; - _getItemIndex(element) { + _proto._getItemIndex = function _getItemIndex(element) { this._items = element && element.parentNode ? makeArray(SelectorEngine.find(Selector$2.ITEM, element.parentNode)) : []; return this._items.indexOf(element); - } + }; - _getItemByDirection(direction, activeElement) { - const isNextDirection = direction === Direction.NEXT; - const isPrevDirection = direction === Direction.PREV; + _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) { + var isNextDirection = direction === Direction.NEXT; + var isPrevDirection = direction === Direction.PREV; - const activeIndex = this._getItemIndex(activeElement); + var activeIndex = this._getItemIndex(activeElement); - const lastItemIndex = this._items.length - 1; - const isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; + var lastItemIndex = this._items.length - 1; + var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; if (isGoingToWrap && !this._config.wrap) { return activeElement; } - const delta = direction === Direction.PREV ? -1 : 1; - const itemIndex = (activeIndex + delta) % this._items.length; + var delta = direction === Direction.PREV ? -1 : 1; + var itemIndex = (activeIndex + delta) % this._items.length; return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; - } + }; - _triggerSlideEvent(relatedTarget, eventDirectionName) { - const targetIndex = this._getItemIndex(relatedTarget); + _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) { + var targetIndex = this._getItemIndex(relatedTarget); - const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector$2.ACTIVE_ITEM, this._element)); + var fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector$2.ACTIVE_ITEM, this._element)); return EventHandler.trigger(this._element, Event$3.SLIDE, { - relatedTarget, + relatedTarget: relatedTarget, direction: eventDirectionName, from: fromIndex, to: targetIndex }); - } + }; - _setActiveIndicatorElement(element) { + _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { if (this._indicatorsElement) { - const indicators = SelectorEngine.find(Selector$2.ACTIVE, this._indicatorsElement); + var indicators = SelectorEngine.find(Selector$2.ACTIVE, this._indicatorsElement); - for (let i = 0; i < indicators.length; i++) { + for (var i = 0; i < indicators.length; i++) { indicators[i].classList.remove(ClassName$2.ACTIVE); } - const nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; + var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; if (nextIndicator) { nextIndicator.classList.add(ClassName$2.ACTIVE); } } - } + }; + + _proto._slide = function _slide(direction, element) { + var _this4 = this; - _slide(direction, element) { - const activeElement = SelectorEngine.findOne(Selector$2.ACTIVE_ITEM, this._element); + var activeElement = SelectorEngine.findOne(Selector$2.ACTIVE_ITEM, this._element); - const activeElementIndex = this._getItemIndex(activeElement); + var activeElementIndex = this._getItemIndex(activeElement); - const nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); - const nextElementIndex = this._getItemIndex(nextElement); + var nextElementIndex = this._getItemIndex(nextElement); - const isCycling = Boolean(this._interval); - let directionalClassName; - let orderClassName; - let eventDirectionName; + var isCycling = Boolean(this._interval); + var directionalClassName; + var orderClassName; + var eventDirectionName; if (direction === Direction.NEXT) { directionalClassName = ClassName$2.LEFT; @@ -1567,7 +1689,7 @@ class Carousel { return; } - const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); + var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); if (slideEvent.defaultPrevented) { return; @@ -1591,7 +1713,7 @@ class Carousel { reflow(nextElement); activeElement.classList.add(directionalClassName); nextElement.classList.add(directionalClassName); - const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10); + var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10); if (nextElementInterval) { this._config.defaultInterval = this._config.defaultInterval || this._config.interval; @@ -1600,17 +1722,17 @@ class Carousel { this._config.interval = this._config.defaultInterval || this._config.interval; } - const transitionDuration = getTransitionDurationFromElement(activeElement); - EventHandler.one(activeElement, TRANSITION_END, () => { + var transitionDuration = getTransitionDurationFromElement(activeElement); + EventHandler.one(activeElement, TRANSITION_END, function () { nextElement.classList.remove(directionalClassName); nextElement.classList.remove(orderClassName); nextElement.classList.add(ClassName$2.ACTIVE); activeElement.classList.remove(ClassName$2.ACTIVE); activeElement.classList.remove(orderClassName); activeElement.classList.remove(directionalClassName); - this._isSliding = false; - setTimeout(() => { - EventHandler.trigger(this._element, Event$3.SLID, { + _this4._isSliding = false; + setTimeout(function () { + EventHandler.trigger(_this4._element, Event$3.SLID, { relatedTarget: nextElement, direction: eventDirectionName, from: activeElementIndex, @@ -1635,18 +1757,18 @@ class Carousel { this.cycle(); } } // Static + ; + Carousel._carouselInterface = function _carouselInterface(element, config) { + var data = Data.getData(element, DATA_KEY$2); - static _carouselInterface(element, config) { - let data = Data.getData(element, DATA_KEY$2); - - let _config = _extends({}, Default, Manipulator.getDataAttributes(element)); + var _config = _objectSpread({}, Default, Manipulator.getDataAttributes(element)); if (typeof config === 'object') { - _config = _extends({}, _config, config); + _config = _objectSpread({}, _config, config); } - const action = typeof config === 'string' ? config : _config.slide; + var action = typeof config === 'string' ? config : _config.slide; if (!data) { data = new Carousel(element, _config); @@ -1656,7 +1778,7 @@ class Carousel { data.to(config); } else if (typeof action === 'string') { if (typeof data[action] === 'undefined') { - throw new TypeError(`No method named "${action}"`); + throw new TypeError("No method named \"" + action + "\""); } data[action](); @@ -1664,30 +1786,30 @@ class Carousel { data.pause(); data.cycle(); } - } + }; - static _jQueryInterface(config) { + Carousel._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { Carousel._carouselInterface(this, config); }); - } + }; - static _dataApiClickHandler(event) { - const selector = getSelectorFromElement(this); + Carousel._dataApiClickHandler = function _dataApiClickHandler(event) { + var selector = getSelectorFromElement(this); if (!selector) { return; } - const target = SelectorEngine.findOne(selector); + var target = SelectorEngine.findOne(selector); if (!target || !target.classList.contains(ClassName$2.CAROUSEL)) { return; } - const config = _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); + var config = _objectSpread({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); - const slideIndex = this.getAttribute('data-slide-to'); + var slideIndex = this.getAttribute('data-slide-to'); if (slideIndex) { config.interval = false; @@ -1700,13 +1822,26 @@ class Carousel { } event.preventDefault(); - } + }; - static _getInstance(element) { + Carousel._getInstance = function _getInstance(element) { return Data.getData(element, DATA_KEY$2); - } + }; -} + _createClass(Carousel, null, [{ + key: "VERSION", + get: function get() { + return VERSION$2; + } + }, { + key: "Default", + get: function get() { + return Default; + } + }]); + + return Carousel; +}(); /** * ------------------------------------------------------------------------ * Data Api implementation @@ -1715,10 +1850,10 @@ class Carousel { EventHandler.on(document, Event$3.CLICK_DATA_API, Selector$2.DATA_SLIDE, Carousel._dataApiClickHandler); -EventHandler.on(window, Event$3.LOAD_DATA_API, () => { - const carousels = makeArray(SelectorEngine.find(Selector$2.DATA_RIDE)); +EventHandler.on(window, Event$3.LOAD_DATA_API, function () { + var carousels = makeArray(SelectorEngine.find(Selector$2.DATA_RIDE)); - for (let i = 0, len = carousels.length; i < len; i++) { + for (var i = 0, len = carousels.length; i < len; i++) { Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY$2)); } }); @@ -1730,12 +1865,12 @@ EventHandler.on(window, Event$3.LOAD_DATA_API, () => { */ if (typeof jQuery !== 'undefined') { - const JQUERY_NO_CONFLICT = jQuery.fn[NAME$2]; + var JQUERY_NO_CONFLICT$2 = jQuery.fn[NAME$2]; jQuery.fn[NAME$2] = Carousel._jQueryInterface; jQuery.fn[NAME$2].Constructor = Carousel; - jQuery.fn[NAME$2].noConflict = () => { - jQuery.fn[NAME$2] = JQUERY_NO_CONFLICT; + jQuery.fn[NAME$2].noConflict = function () { + jQuery.fn[NAME$2] = JQUERY_NO_CONFLICT$2; return Carousel._jQueryInterface; }; } @@ -1746,37 +1881,37 @@ if (typeof jQuery !== 'undefined') { * ------------------------------------------------------------------------ */ -const NAME$3 = 'collapse'; -const VERSION$3 = '4.3.1'; -const DATA_KEY$3 = 'bs.collapse'; -const EVENT_KEY$3 = `.${DATA_KEY$3}`; -const DATA_API_KEY$3 = '.data-api'; -const Default$1 = { +var NAME$3 = 'collapse'; +var VERSION$3 = '4.3.1'; +var DATA_KEY$3 = 'bs.collapse'; +var EVENT_KEY$3 = "." + DATA_KEY$3; +var DATA_API_KEY$3 = '.data-api'; +var Default$1 = { toggle: true, parent: '' }; -const DefaultType$1 = { +var DefaultType$1 = { toggle: 'boolean', parent: '(string|element)' }; -const Event$4 = { - SHOW: `show${EVENT_KEY$3}`, - SHOWN: `shown${EVENT_KEY$3}`, - HIDE: `hide${EVENT_KEY$3}`, - HIDDEN: `hidden${EVENT_KEY$3}`, - CLICK_DATA_API: `click${EVENT_KEY$3}${DATA_API_KEY$3}` +var Event$4 = { + SHOW: "show" + EVENT_KEY$3, + SHOWN: "shown" + EVENT_KEY$3, + HIDE: "hide" + EVENT_KEY$3, + HIDDEN: "hidden" + EVENT_KEY$3, + CLICK_DATA_API: "click" + EVENT_KEY$3 + DATA_API_KEY$3 }; -const ClassName$3 = { +var ClassName$3 = { SHOW: 'show', COLLAPSE: 'collapse', COLLAPSING: 'collapsing', COLLAPSED: 'collapsed' }; -const Dimension = { +var Dimension = { WIDTH: 'width', HEIGHT: 'height' }; -const Selector$3 = { +var Selector$3 = { ACTIVES: '.show, .collapsing', DATA_TOGGLE: '[data-toggle="collapse"]' /** @@ -1787,18 +1922,22 @@ const Selector$3 = { }; -class Collapse { - constructor(element, config) { +var Collapse = +/*#__PURE__*/ +function () { + function Collapse(element, config) { this._isTransitioning = false; this._element = element; this._config = this._getConfig(config); - this._triggerArray = makeArray(SelectorEngine.find(`[data-toggle="collapse"][href="#${element.id}"],` + `[data-toggle="collapse"][data-target="#${element.id}"]`)); - const toggleList = makeArray(SelectorEngine.find(Selector$3.DATA_TOGGLE)); - - for (let i = 0, len = toggleList.length; i < len; i++) { - const elem = toggleList[i]; - const selector = getSelectorFromElement(elem); - const filterElement = makeArray(SelectorEngine.find(selector)).filter(foundElem => foundElem === element); + this._triggerArray = makeArray(SelectorEngine.find("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]"))); + var toggleList = makeArray(SelectorEngine.find(Selector$3.DATA_TOGGLE)); + + for (var i = 0, len = toggleList.length; i < len; i++) { + var elem = toggleList[i]; + var selector = getSelectorFromElement(elem); + var filterElement = makeArray(SelectorEngine.find(selector)).filter(function (foundElem) { + return foundElem === element; + }); if (selector !== null && filterElement.length) { this._selector = selector; @@ -1821,35 +1960,31 @@ class Collapse { } // Getters - static get VERSION() { - return VERSION$3; - } - - static get Default() { - return Default$1; - } // Public - + var _proto = Collapse.prototype; - toggle() { + // Public + _proto.toggle = function toggle() { if (this._element.classList.contains(ClassName$3.SHOW)) { this.hide(); } else { this.show(); } - } + }; + + _proto.show = function show() { + var _this = this; - show() { if (this._isTransitioning || this._element.classList.contains(ClassName$3.SHOW)) { return; } - let actives; - let activesData; + var actives; + var activesData; if (this._parent) { - actives = makeArray(SelectorEngine.find(Selector$3.ACTIVES, this._parent)).filter(elem => { - if (typeof this._config.parent === 'string') { - return elem.getAttribute('data-parent') === this._config.parent; + actives = makeArray(SelectorEngine.find(Selector$3.ACTIVES, this._parent)).filter(function (elem) { + if (typeof _this._config.parent === 'string') { + return elem.getAttribute('data-parent') === _this._config.parent; } return elem.classList.contains(ClassName$3.COLLAPSE); @@ -1860,10 +1995,12 @@ class Collapse { } } - const container = SelectorEngine.findOne(this._selector); + var container = SelectorEngine.findOne(this._selector); if (actives) { - const tempActiveData = actives.filter(elem => container !== elem); + var tempActiveData = actives.filter(function (elem) { + return container !== elem; + }); activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY$3) : null; if (activesData && activesData._isTransitioning) { @@ -1871,14 +2008,14 @@ class Collapse { } } - const startEvent = EventHandler.trigger(this._element, Event$4.SHOW); + var startEvent = EventHandler.trigger(this._element, Event$4.SHOW); if (startEvent.defaultPrevented) { return; } if (actives) { - actives.forEach(elemActive => { + actives.forEach(function (elemActive) { if (container !== elemActive) { Collapse._collapseInterface(elemActive, 'hide'); } @@ -1889,7 +2026,7 @@ class Collapse { }); } - const dimension = this._getDimension(); + var dimension = this._getDimension(); this._element.classList.remove(ClassName$3.COLLAPSE); @@ -1898,7 +2035,7 @@ class Collapse { this._element.style[dimension] = 0; if (this._triggerArray.length) { - this._triggerArray.forEach(element => { + this._triggerArray.forEach(function (element) { element.classList.remove(ClassName$3.COLLAPSED); element.setAttribute('aria-expanded', true); }); @@ -1906,40 +2043,44 @@ class Collapse { this.setTransitioning(true); - const complete = () => { - this._element.classList.remove(ClassName$3.COLLAPSING); + var complete = function complete() { + _this._element.classList.remove(ClassName$3.COLLAPSING); - this._element.classList.add(ClassName$3.COLLAPSE); + _this._element.classList.add(ClassName$3.COLLAPSE); - this._element.classList.add(ClassName$3.SHOW); + _this._element.classList.add(ClassName$3.SHOW); - this._element.style[dimension] = ''; - this.setTransitioning(false); - EventHandler.trigger(this._element, Event$4.SHOWN); + _this._element.style[dimension] = ''; + + _this.setTransitioning(false); + + EventHandler.trigger(_this._element, Event$4.SHOWN); }; - const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); - const scrollSize = `scroll${capitalizedDimension}`; - const transitionDuration = getTransitionDurationFromElement(this._element); + var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + var scrollSize = "scroll" + capitalizedDimension; + var transitionDuration = getTransitionDurationFromElement(this._element); EventHandler.one(this._element, TRANSITION_END, complete); emulateTransitionEnd(this._element, transitionDuration); - this._element.style[dimension] = `${this._element[scrollSize]}px`; - } + this._element.style[dimension] = this._element[scrollSize] + "px"; + }; + + _proto.hide = function hide() { + var _this2 = this; - hide() { if (this._isTransitioning || !this._element.classList.contains(ClassName$3.SHOW)) { return; } - const startEvent = EventHandler.trigger(this._element, Event$4.HIDE); + var startEvent = EventHandler.trigger(this._element, Event$4.HIDE); if (startEvent.defaultPrevented) { return; } - const dimension = this._getDimension(); + var dimension = this._getDimension(); - this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; + this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; reflow(this._element); this._element.classList.add(ClassName$3.COLLAPSING); @@ -1948,15 +2089,15 @@ class Collapse { this._element.classList.remove(ClassName$3.SHOW); - const triggerArrayLength = this._triggerArray.length; + var triggerArrayLength = this._triggerArray.length; if (triggerArrayLength > 0) { - for (let i = 0; i < triggerArrayLength; i++) { - const trigger = this._triggerArray[i]; - const selector = getSelectorFromElement(trigger); + for (var i = 0; i < triggerArrayLength; i++) { + var trigger = this._triggerArray[i]; + var selector = getSelectorFromElement(trigger); if (selector !== null) { - const elem = SelectorEngine.findOne(selector); + var elem = SelectorEngine.findOne(selector); if (!elem.classList.contains(ClassName$3.SHOW)) { trigger.classList.add(ClassName$3.COLLAPSED); @@ -1968,27 +2109,27 @@ class Collapse { this.setTransitioning(true); - const complete = () => { - this.setTransitioning(false); + var complete = function complete() { + _this2.setTransitioning(false); - this._element.classList.remove(ClassName$3.COLLAPSING); + _this2._element.classList.remove(ClassName$3.COLLAPSING); - this._element.classList.add(ClassName$3.COLLAPSE); + _this2._element.classList.add(ClassName$3.COLLAPSE); - EventHandler.trigger(this._element, Event$4.HIDDEN); + EventHandler.trigger(_this2._element, Event$4.HIDDEN); }; this._element.style[dimension] = ''; - const transitionDuration = getTransitionDurationFromElement(this._element); + var transitionDuration = getTransitionDurationFromElement(this._element); EventHandler.one(this._element, TRANSITION_END, complete); emulateTransitionEnd(this._element, transitionDuration); - } + }; - setTransitioning(isTransitioning) { + _proto.setTransitioning = function setTransitioning(isTransitioning) { this._isTransitioning = isTransitioning; - } + }; - dispose() { + _proto.dispose = function dispose() { Data.removeData(this._element, DATA_KEY$3); this._config = null; this._parent = null; @@ -1996,24 +2137,26 @@ class Collapse { this._triggerArray = null; this._isTransitioning = null; } // Private + ; - - _getConfig(config) { - config = _extends({}, Default$1, config); + _proto._getConfig = function _getConfig(config) { + config = _objectSpread({}, Default$1, config); config.toggle = Boolean(config.toggle); // Coerce string values typeCheckConfig(NAME$3, config, DefaultType$1); return config; - } + }; - _getDimension() { - const hasWidth = this._element.classList.contains(Dimension.WIDTH); + _proto._getDimension = function _getDimension() { + var hasWidth = this._element.classList.contains(Dimension.WIDTH); return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT; - } + }; - _getParent() { - let parent = this._config.parent; + _proto._getParent = function _getParent() { + var _this3 = this; + + var parent = this._config.parent; if (isElement(parent)) { // it's a jQuery object @@ -2024,19 +2167,19 @@ class Collapse { parent = SelectorEngine.findOne(parent); } - const selector = `[data-toggle="collapse"][data-parent="${parent}"]`; - makeArray(SelectorEngine.find(selector, parent)).forEach(element => { - this._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); + var selector = "[data-toggle=\"collapse\"][data-parent=\"" + parent + "\"]"; + makeArray(SelectorEngine.find(selector, parent)).forEach(function (element) { + _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); }); return parent; - } + }; - _addAriaAndCollapsedClass(element, triggerArray) { + _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { if (element) { - const isOpen = element.classList.contains(ClassName$3.SHOW); + var isOpen = element.classList.contains(ClassName$3.SHOW); if (triggerArray.length) { - triggerArray.forEach(elem => { + triggerArray.forEach(function (elem) { if (isOpen) { elem.classList.remove(ClassName$3.COLLAPSED); } else { @@ -2048,17 +2191,17 @@ class Collapse { } } } // Static + ; - - static _getTargetFromElement(element) { - const selector = getSelectorFromElement(element); + Collapse._getTargetFromElement = function _getTargetFromElement(element) { + var selector = getSelectorFromElement(element); return selector ? SelectorEngine.findOne(selector) : null; - } + }; - static _collapseInterface(element, config) { - let data = Data.getData(element, DATA_KEY$3); + Collapse._collapseInterface = function _collapseInterface(element, config) { + var data = Data.getData(element, DATA_KEY$3); - const _config = _extends({}, Default$1, Manipulator.getDataAttributes(element), typeof config === 'object' && config ? config : {}); + var _config = _objectSpread({}, Default$1, Manipulator.getDataAttributes(element), typeof config === 'object' && config ? config : {}); if (!data && _config.toggle && /show|hide/.test(config)) { _config.toggle = false; @@ -2070,24 +2213,37 @@ class Collapse { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); + throw new TypeError("No method named \"" + config + "\""); } data[config](); } - } + }; - static _jQueryInterface(config) { + Collapse._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { Collapse._collapseInterface(this, config); }); - } + }; - static _getInstance(element) { + Collapse._getInstance = function _getInstance(element) { return Data.getData(element, DATA_KEY$3); - } + }; -} + _createClass(Collapse, null, [{ + key: "VERSION", + get: function get() { + return VERSION$3; + } + }, { + key: "Default", + get: function get() { + return Default$1; + } + }]); + + return Collapse; +}(); /** * ------------------------------------------------------------------------ * Data Api implementation @@ -2101,12 +2257,12 @@ EventHandler.on(document, Event$4.CLICK_DATA_API, Selector$3.DATA_TOGGLE, functi event.preventDefault(); } - const triggerData = Manipulator.getDataAttributes(this); - const selector = getSelectorFromElement(this); - const selectorElements = makeArray(SelectorEngine.find(selector)); - selectorElements.forEach(element => { - const data = Data.getData(element, DATA_KEY$3); - let config; + var triggerData = Manipulator.getDataAttributes(this); + var selector = getSelectorFromElement(this); + var selectorElements = makeArray(SelectorEngine.find(selector)); + selectorElements.forEach(function (element) { + var data = Data.getData(element, DATA_KEY$3); + var config; if (data) { // update parent attribute @@ -2131,12 +2287,12 @@ EventHandler.on(document, Event$4.CLICK_DATA_API, Selector$3.DATA_TOGGLE, functi */ if (typeof jQuery !== 'undefined') { - const JQUERY_NO_CONFLICT = jQuery.fn[NAME$3]; + var JQUERY_NO_CONFLICT$3 = jQuery.fn[NAME$3]; jQuery.fn[NAME$3] = Collapse._jQueryInterface; jQuery.fn[NAME$3].Constructor = Collapse; - jQuery.fn[NAME$3].noConflict = () => { - jQuery.fn[NAME$3] = JQUERY_NO_CONFLICT; + jQuery.fn[NAME$3].noConflict = function () { + jQuery.fn[NAME$3] = JQUERY_NO_CONFLICT$3; return Collapse._jQueryInterface; }; } @@ -2147,35 +2303,35 @@ if (typeof jQuery !== 'undefined') { * ------------------------------------------------------------------------ */ -const NAME$4 = 'dropdown'; -const VERSION$4 = '4.3.1'; -const DATA_KEY$4 = 'bs.dropdown'; -const EVENT_KEY$4 = `.${DATA_KEY$4}`; -const DATA_API_KEY$4 = '.data-api'; -const ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key +var NAME$4 = 'dropdown'; +var VERSION$4 = '4.3.1'; +var DATA_KEY$4 = 'bs.dropdown'; +var EVENT_KEY$4 = "." + DATA_KEY$4; +var DATA_API_KEY$4 = '.data-api'; +var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key -const SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key +var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key -const TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key +var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key -const ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key +var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key -const ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key +var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key -const RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse) +var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse) -const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`); -const Event$5 = { - HIDE: `hide${EVENT_KEY$4}`, - HIDDEN: `hidden${EVENT_KEY$4}`, - SHOW: `show${EVENT_KEY$4}`, - SHOWN: `shown${EVENT_KEY$4}`, - CLICK: `click${EVENT_KEY$4}`, - CLICK_DATA_API: `click${EVENT_KEY$4}${DATA_API_KEY$4}`, - KEYDOWN_DATA_API: `keydown${EVENT_KEY$4}${DATA_API_KEY$4}`, - KEYUP_DATA_API: `keyup${EVENT_KEY$4}${DATA_API_KEY$4}` +var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE); +var Event$5 = { + HIDE: "hide" + EVENT_KEY$4, + HIDDEN: "hidden" + EVENT_KEY$4, + SHOW: "show" + EVENT_KEY$4, + SHOWN: "shown" + EVENT_KEY$4, + CLICK: "click" + EVENT_KEY$4, + CLICK_DATA_API: "click" + EVENT_KEY$4 + DATA_API_KEY$4, + KEYDOWN_DATA_API: "keydown" + EVENT_KEY$4 + DATA_API_KEY$4, + KEYUP_DATA_API: "keyup" + EVENT_KEY$4 + DATA_API_KEY$4 }; -const ClassName$4 = { +var ClassName$4 = { DISABLED: 'disabled', SHOW: 'show', DROPUP: 'dropup', @@ -2184,14 +2340,14 @@ const ClassName$4 = { MENURIGHT: 'dropdown-menu-right', POSITION_STATIC: 'position-static' }; -const Selector$4 = { +var Selector$4 = { DATA_TOGGLE: '[data-toggle="dropdown"]', FORM_CHILD: '.dropdown form', MENU: '.dropdown-menu', NAVBAR_NAV: '.navbar-nav', VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)' }; -const AttachmentMap = { +var AttachmentMap = { TOP: 'top-start', TOPEND: 'top-end', BOTTOM: 'bottom-start', @@ -2201,14 +2357,14 @@ const AttachmentMap = { LEFT: 'left-start', LEFTEND: 'left-end' }; -const Default$2 = { +var Default$2 = { offset: 0, flip: true, boundary: 'scrollParent', reference: 'toggle', display: 'dynamic' }; -const DefaultType$2 = { +var DefaultType$2 = { offset: '(number|string|function)', flip: 'boolean', boundary: '(string|element)', @@ -2222,8 +2378,10 @@ const DefaultType$2 = { }; -class Dropdown { - constructor(element, config) { +var Dropdown = +/*#__PURE__*/ +function () { + function Dropdown(element, config) { this._element = element; this._popper = null; this._config = this._getConfig(config); @@ -2236,27 +2394,17 @@ class Dropdown { } // Getters - static get VERSION() { - return VERSION$4; - } + var _proto = Dropdown.prototype; - static get Default() { - return Default$2; - } - - static get DefaultType() { - return DefaultType$2; - } // Public - - - toggle() { + // Public + _proto.toggle = function toggle() { if (this._element.disabled || this._element.classList.contains(ClassName$4.DISABLED)) { return; } - const parent = Dropdown._getParentFromElement(this._element); + var parent = Dropdown._getParentFromElement(this._element); - const isActive = this._menu.classList.contains(ClassName$4.SHOW); + var isActive = this._menu.classList.contains(ClassName$4.SHOW); Dropdown._clearMenus(); @@ -2264,10 +2412,10 @@ class Dropdown { return; } - const relatedTarget = { + var relatedTarget = { relatedTarget: this._element }; - const showEvent = EventHandler.trigger(parent, Event$5.SHOW, relatedTarget); + var showEvent = EventHandler.trigger(parent, Event$5.SHOW, relatedTarget); if (showEvent.defaultPrevented) { return; @@ -2283,7 +2431,7 @@ class Dropdown { throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org)'); } - let referenceElement = this._element; + var referenceElement = this._element; if (this._config.reference === 'parent') { referenceElement = parent; @@ -2310,7 +2458,9 @@ class Dropdown { if ('ontouchstart' in document.documentElement && !makeArray(SelectorEngine.closest(parent, Selector$4.NAVBAR_NAV)).length) { - makeArray(document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', null, noop())); + makeArray(document.body.children).forEach(function (elem) { + return EventHandler.on(elem, 'mouseover', null, noop()); + }); } this._element.focus(); @@ -2320,19 +2470,19 @@ class Dropdown { Manipulator.toggleClass(this._menu, ClassName$4.SHOW); Manipulator.toggleClass(parent, ClassName$4.SHOW); EventHandler.trigger(parent, Event$5.SHOWN, relatedTarget); - } + }; - show() { + _proto.show = function show() { if (this._element.disabled || this._element.classList.contains(ClassName$4.DISABLED) || this._menu.classList.contains(ClassName$4.SHOW)) { return; } - const parent = Dropdown._getParentFromElement(this._element); + var parent = Dropdown._getParentFromElement(this._element); - const relatedTarget = { + var relatedTarget = { relatedTarget: this._element }; - const showEvent = EventHandler.trigger(parent, Event$5.SHOW, relatedTarget); + var showEvent = EventHandler.trigger(parent, Event$5.SHOW, relatedTarget); if (showEvent.defaultPrevented) { return; @@ -2341,19 +2491,19 @@ class Dropdown { Manipulator.toggleClass(this._menu, ClassName$4.SHOW); Manipulator.toggleClass(parent, ClassName$4.SHOW); EventHandler.trigger(parent, Event$5.SHOWN, relatedTarget); - } + }; - hide() { + _proto.hide = function hide() { if (this._element.disabled || this._element.classList.contains(ClassName$4.DISABLED) || !this._menu.classList.contains(ClassName$4.SHOW)) { return; } - const parent = Dropdown._getParentFromElement(this._element); + var parent = Dropdown._getParentFromElement(this._element); - const relatedTarget = { + var relatedTarget = { relatedTarget: this._element }; - const hideEvent = EventHandler.trigger(parent, Event$5.HIDE, relatedTarget); + var hideEvent = EventHandler.trigger(parent, Event$5.HIDE, relatedTarget); if (hideEvent.defaultPrevented) { return; @@ -2362,9 +2512,9 @@ class Dropdown { Manipulator.toggleClass(this._menu, ClassName$4.SHOW); Manipulator.toggleClass(parent, ClassName$4.SHOW); EventHandler.trigger(parent, Event$5.HIDDEN, relatedTarget); - } + }; - dispose() { + _proto.dispose = function dispose() { Data.removeData(this._element, DATA_KEY$4); EventHandler.off(this._element, EVENT_KEY$4); this._element = null; @@ -2375,34 +2525,37 @@ class Dropdown { this._popper = null; } - } + }; - update() { + _proto.update = function update() { this._inNavbar = this._detectNavbar(); if (this._popper !== null) { this._popper.scheduleUpdate(); } } // Private + ; + _proto._addEventListeners = function _addEventListeners() { + var _this = this; - _addEventListeners() { - EventHandler.on(this._element, Event$5.CLICK, event => { + EventHandler.on(this._element, Event$5.CLICK, function (event) { event.preventDefault(); event.stopPropagation(); - this.toggle(); + + _this.toggle(); }); - } + }; - _getConfig(config) { - config = _extends({}, this.constructor.Default, Manipulator.getDataAttributes(this._element), config); + _proto._getConfig = function _getConfig(config) { + config = _objectSpread({}, this.constructor.Default, Manipulator.getDataAttributes(this._element), config); typeCheckConfig(NAME$4, config, this.constructor.DefaultType); return config; - } + }; - _getMenuElement() { + _proto._getMenuElement = function _getMenuElement() { if (!this._menu) { - const parent = Dropdown._getParentFromElement(this._element); + var parent = Dropdown._getParentFromElement(this._element); if (parent) { this._menu = SelectorEngine.findOne(Selector$4.MENU, parent); @@ -2410,11 +2563,11 @@ class Dropdown { } return this._menu; - } + }; - _getPlacement() { - const parentDropdown = this._element.parentNode; - let placement = AttachmentMap.BOTTOM; // Handle dropup + _proto._getPlacement = function _getPlacement() { + var parentDropdown = this._element.parentNode; + var placement = AttachmentMap.BOTTOM; // Handle dropup if (parentDropdown.classList.contains(ClassName$4.DROPUP)) { placement = AttachmentMap.TOP; @@ -2431,18 +2584,20 @@ class Dropdown { } return placement; - } + }; - _detectNavbar() { + _proto._detectNavbar = function _detectNavbar() { return Boolean(SelectorEngine.closest(this._element, '.navbar')); - } + }; + + _proto._getOffset = function _getOffset() { + var _this2 = this; - _getOffset() { - const offset = {}; + var offset = {}; if (typeof this._config.offset === 'function') { - offset.fn = data => { - data.offsets = _extends({}, data.offsets, this._config.offset(data.offsets, this._element) || {}); + offset.fn = function (data) { + data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {}); return data; }; } else { @@ -2450,10 +2605,10 @@ class Dropdown { } return offset; - } + }; - _getPopperConfig() { - const popperConfig = { + _proto._getPopperConfig = function _getPopperConfig() { + var popperConfig = { placement: this._getPlacement(), modifiers: { offset: this._getOffset(), @@ -2475,12 +2630,12 @@ class Dropdown { return popperConfig; } // Static + ; + Dropdown._dropdownInterface = function _dropdownInterface(element, config) { + var data = Data.getData(element, DATA_KEY$4); - static _dropdownInterface(element, config) { - let data = Data.getData(element, DATA_KEY$4); - - const _config = typeof config === 'object' ? config : null; + var _config = typeof config === 'object' ? config : null; if (!data) { data = new Dropdown(element, _config); @@ -2488,31 +2643,31 @@ class Dropdown { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); + throw new TypeError("No method named \"" + config + "\""); } data[config](); } - } + }; - static _jQueryInterface(config) { + Dropdown._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { Dropdown._dropdownInterface(this, config); }); - } + }; - static _clearMenus(event) { + Dropdown._clearMenus = function _clearMenus(event) { if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) { return; } - const toggles = makeArray(SelectorEngine.find(Selector$4.DATA_TOGGLE)); + var toggles = makeArray(SelectorEngine.find(Selector$4.DATA_TOGGLE)); - for (let i = 0, len = toggles.length; i < len; i++) { - const parent = Dropdown._getParentFromElement(toggles[i]); + for (var i = 0, len = toggles.length; i < len; i++) { + var parent = Dropdown._getParentFromElement(toggles[i]); - const context = Data.getData(toggles[i], DATA_KEY$4); - const relatedTarget = { + var context = Data.getData(toggles[i], DATA_KEY$4); + var relatedTarget = { relatedTarget: toggles[i] }; @@ -2524,7 +2679,7 @@ class Dropdown { continue; } - const dropdownMenu = context._menu; + var dropdownMenu = context._menu; if (!parent.classList.contains(ClassName$4.SHOW)) { continue; @@ -2534,7 +2689,7 @@ class Dropdown { continue; } - const hideEvent = EventHandler.trigger(parent, Event$5.HIDE, relatedTarget); + var hideEvent = EventHandler.trigger(parent, Event$5.HIDE, relatedTarget); if (hideEvent.defaultPrevented) { continue; @@ -2543,7 +2698,9 @@ class Dropdown { if ('ontouchstart' in document.documentElement) { - makeArray(document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', null, noop())); + makeArray(document.body.children).forEach(function (elem) { + return EventHandler.off(elem, 'mouseover', null, noop()); + }); } toggles[i].setAttribute('aria-expanded', 'false'); @@ -2551,20 +2708,20 @@ class Dropdown { parent.classList.remove(ClassName$4.SHOW); EventHandler.trigger(parent, Event$5.HIDDEN, relatedTarget); } - } + }; - static _getParentFromElement(element) { - let parent; - const selector = getSelectorFromElement(element); + Dropdown._getParentFromElement = function _getParentFromElement(element) { + var parent; + var selector = getSelectorFromElement(element); if (selector) { parent = SelectorEngine.findOne(selector); } return parent || element.parentNode; - } + }; - static _dataApiKeydownHandler(event) { + Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) { // If not input/textarea: // - And not a key in REGEXP_KEYDOWN => not a dropdown command // If input/textarea: @@ -2583,9 +2740,9 @@ class Dropdown { return; } - const parent = Dropdown._getParentFromElement(this); + var parent = Dropdown._getParentFromElement(this); - const isActive = parent.classList.contains(ClassName$4.SHOW); + var isActive = parent.classList.contains(ClassName$4.SHOW); if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) { if (event.which === ESCAPE_KEYCODE) { @@ -2597,13 +2754,13 @@ class Dropdown { return; } - const items = makeArray(SelectorEngine.find(Selector$4.VISIBLE_ITEMS, parent)); + var items = makeArray(SelectorEngine.find(Selector$4.VISIBLE_ITEMS, parent)); if (!items.length) { return; } - let index = items.indexOf(event.target); + var index = items.indexOf(event.target); if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up @@ -2620,13 +2777,31 @@ class Dropdown { } items[index].focus(); - } + }; - static _getInstance(element) { + Dropdown._getInstance = function _getInstance(element) { return Data.getData(element, DATA_KEY$4); - } + }; -} + _createClass(Dropdown, null, [{ + key: "VERSION", + get: function get() { + return VERSION$4; + } + }, { + key: "Default", + get: function get() { + return Default$2; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType$2; + } + }]); + + return Dropdown; +}(); /** * ------------------------------------------------------------------------ * Data Api implementation @@ -2644,7 +2819,9 @@ EventHandler.on(document, Event$5.CLICK_DATA_API, Selector$4.DATA_TOGGLE, functi Dropdown._dropdownInterface(this, 'toggle'); }); -EventHandler.on(document, Event$5.CLICK_DATA_API, Selector$4.FORM_CHILD, e => e.stopPropagation()); +EventHandler.on(document, Event$5.CLICK_DATA_API, Selector$4.FORM_CHILD, function (e) { + return e.stopPropagation(); +}); /** * ------------------------------------------------------------------------ * jQuery @@ -2653,12 +2830,12 @@ EventHandler.on(document, Event$5.CLICK_DATA_API, Selector$4.FORM_CHILD, e => e. */ if (typeof jQuery !== 'undefined') { - const JQUERY_NO_CONFLICT = jQuery.fn[NAME$4]; + var JQUERY_NO_CONFLICT$4 = jQuery.fn[NAME$4]; jQuery.fn[NAME$4] = Dropdown._jQueryInterface; jQuery.fn[NAME$4].Constructor = Dropdown; - jQuery.fn[NAME$4].noConflict = () => { - jQuery.fn[NAME$4] = JQUERY_NO_CONFLICT; + jQuery.fn[NAME$4].noConflict = function () { + jQuery.fn[NAME$4] = JQUERY_NO_CONFLICT$4; return Dropdown._jQueryInterface; }; } @@ -2669,39 +2846,39 @@ if (typeof jQuery !== 'undefined') { * ------------------------------------------------------------------------ */ -const NAME$5 = 'modal'; -const VERSION$5 = '4.3.1'; -const DATA_KEY$5 = 'bs.modal'; -const EVENT_KEY$5 = `.${DATA_KEY$5}`; -const DATA_API_KEY$5 = '.data-api'; -const ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key +var NAME$5 = 'modal'; +var VERSION$5 = '4.3.1'; +var DATA_KEY$5 = 'bs.modal'; +var EVENT_KEY$5 = "." + DATA_KEY$5; +var DATA_API_KEY$5 = '.data-api'; +var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key -const Default$3 = { +var Default$3 = { backdrop: true, keyboard: true, focus: true, show: true }; -const DefaultType$3 = { +var DefaultType$3 = { backdrop: '(boolean|string)', keyboard: 'boolean', focus: 'boolean', show: 'boolean' }; -const Event$6 = { - HIDE: `hide${EVENT_KEY$5}`, - HIDDEN: `hidden${EVENT_KEY$5}`, - SHOW: `show${EVENT_KEY$5}`, - SHOWN: `shown${EVENT_KEY$5}`, - FOCUSIN: `focusin${EVENT_KEY$5}`, - RESIZE: `resize${EVENT_KEY$5}`, - CLICK_DISMISS: `click.dismiss${EVENT_KEY$5}`, - KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY$5}`, - MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY$5}`, - MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY$5}`, - CLICK_DATA_API: `click${EVENT_KEY$5}${DATA_API_KEY$5}` +var Event$6 = { + HIDE: "hide" + EVENT_KEY$5, + HIDDEN: "hidden" + EVENT_KEY$5, + SHOW: "show" + EVENT_KEY$5, + SHOWN: "shown" + EVENT_KEY$5, + FOCUSIN: "focusin" + EVENT_KEY$5, + RESIZE: "resize" + EVENT_KEY$5, + CLICK_DISMISS: "click.dismiss" + EVENT_KEY$5, + KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY$5, + MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY$5, + MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY$5, + CLICK_DATA_API: "click" + EVENT_KEY$5 + DATA_API_KEY$5 }; -const ClassName$5 = { +var ClassName$5 = { SCROLLABLE: 'modal-dialog-scrollable', SCROLLBAR_MEASURER: 'modal-scrollbar-measure', BACKDROP: 'modal-backdrop', @@ -2709,7 +2886,7 @@ const ClassName$5 = { FADE: 'fade', SHOW: 'show' }; -const Selector$5 = { +var Selector$5 = { DIALOG: '.modal-dialog', MODAL_BODY: '.modal-body', DATA_TOGGLE: '[data-toggle="modal"]', @@ -2724,8 +2901,10 @@ const Selector$5 = { }; -class Modal { - constructor(element, config) { +var Modal = +/*#__PURE__*/ +function () { + function Modal(element, config) { this._config = this._getConfig(config); this._element = element; this._dialog = SelectorEngine.findOne(Selector$5.DIALOG, element); @@ -2739,20 +2918,16 @@ class Modal { } // Getters - static get VERSION() { - return VERSION$5; - } - - static get Default() { - return Default$3; - } // Public - + var _proto = Modal.prototype; - toggle(relatedTarget) { + // Public + _proto.toggle = function toggle(relatedTarget) { return this._isShown ? this.hide() : this.show(relatedTarget); - } + }; + + _proto.show = function show(relatedTarget) { + var _this = this; - show(relatedTarget) { if (this._isShown || this._isTransitioning) { return; } @@ -2761,8 +2936,8 @@ class Modal { this._isTransitioning = true; } - const showEvent = EventHandler.trigger(this._element, Event$6.SHOW, { - relatedTarget + var showEvent = EventHandler.trigger(this._element, Event$6.SHOW, { + relatedTarget: relatedTarget }); if (this._isShown || showEvent.defaultPrevented) { @@ -2781,19 +2956,25 @@ class Modal { this._setResizeEvent(); - EventHandler.on(this._element, Event$6.CLICK_DISMISS, Selector$5.DATA_DISMISS, event => this.hide(event)); - EventHandler.on(this._dialog, Event$6.MOUSEDOWN_DISMISS, () => { - EventHandler.one(this._element, Event$6.MOUSEUP_DISMISS, event => { - if (event.target === this._element) { - this._ignoreBackdropClick = true; + EventHandler.on(this._element, Event$6.CLICK_DISMISS, Selector$5.DATA_DISMISS, function (event) { + return _this.hide(event); + }); + EventHandler.on(this._dialog, Event$6.MOUSEDOWN_DISMISS, function () { + EventHandler.one(_this._element, Event$6.MOUSEUP_DISMISS, function (event) { + if (event.target === _this._element) { + _this._ignoreBackdropClick = true; } }); }); - this._showBackdrop(() => this._showElement(relatedTarget)); - } + this._showBackdrop(function () { + return _this._showElement(relatedTarget); + }); + }; + + _proto.hide = function hide(event) { + var _this2 = this; - hide(event) { if (event) { event.preventDefault(); } @@ -2802,7 +2983,7 @@ class Modal { return; } - const hideEvent = EventHandler.trigger(this._element, Event$6.HIDE); + var hideEvent = EventHandler.trigger(this._element, Event$6.HIDE); if (!this._isShown || hideEvent.defaultPrevented) { return; @@ -2810,7 +2991,7 @@ class Modal { this._isShown = false; - const transition = this._element.classList.contains(ClassName$5.FADE); + var transition = this._element.classList.contains(ClassName$5.FADE); if (transition) { this._isTransitioning = true; @@ -2828,16 +3009,20 @@ class Modal { EventHandler.off(this._dialog, Event$6.MOUSEDOWN_DISMISS); if (transition) { - const transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event)); + var transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, TRANSITION_END, function (event) { + return _this2._hideModal(event); + }); emulateTransitionEnd(this._element, transitionDuration); } else { this._hideModal(); } - } + }; - dispose() { - [window, this._element, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$5)); + _proto.dispose = function dispose() { + [window, this._element, this._dialog].forEach(function (htmlElement) { + return EventHandler.off(htmlElement, EVENT_KEY$5); + }); /** * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API` * Do not move `document` in `htmlElements` array @@ -2855,21 +3040,23 @@ class Modal { this._ignoreBackdropClick = null; this._isTransitioning = null; this._scrollbarWidth = null; - } + }; - handleUpdate() { + _proto.handleUpdate = function handleUpdate() { this._adjustDialog(); } // Private + ; - - _getConfig(config) { - config = _extends({}, Default$3, config); + _proto._getConfig = function _getConfig(config) { + config = _objectSpread({}, Default$3, config); typeCheckConfig(NAME$5, config, DefaultType$3); return config; - } + }; + + _proto._showElement = function _showElement(relatedTarget) { + var _this3 = this; - _showElement(relatedTarget) { - const transition = this._element.classList.contains(ClassName$5.FADE); + var transition = this._element.classList.contains(ClassName$5.FADE); if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { // Don't move modal's DOM position @@ -2898,58 +3085,69 @@ class Modal { this._enforceFocus(); } - const transitionComplete = () => { - if (this._config.focus) { - this._element.focus(); + var transitionComplete = function transitionComplete() { + if (_this3._config.focus) { + _this3._element.focus(); } - this._isTransitioning = false; - EventHandler.trigger(this._element, Event$6.SHOWN, { - relatedTarget + _this3._isTransitioning = false; + EventHandler.trigger(_this3._element, Event$6.SHOWN, { + relatedTarget: relatedTarget }); }; if (transition) { - const transitionDuration = getTransitionDurationFromElement(this._dialog); + var transitionDuration = getTransitionDurationFromElement(this._dialog); EventHandler.one(this._dialog, TRANSITION_END, transitionComplete); emulateTransitionEnd(this._dialog, transitionDuration); } else { transitionComplete(); } - } + }; + + _proto._enforceFocus = function _enforceFocus() { + var _this4 = this; - _enforceFocus() { EventHandler.off(document, Event$6.FOCUSIN); // guard against infinite focus loop - EventHandler.on(document, Event$6.FOCUSIN, event => { - if (document !== event.target && this._element !== event.target && !this._element.contains(event.target)) { - this._element.focus(); + EventHandler.on(document, Event$6.FOCUSIN, function (event) { + if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) { + _this4._element.focus(); } }); - } + }; + + _proto._setEscapeEvent = function _setEscapeEvent() { + var _this5 = this; - _setEscapeEvent() { if (this._isShown && this._config.keyboard) { - EventHandler.on(this._element, Event$6.KEYDOWN_DISMISS, event => { + EventHandler.on(this._element, Event$6.KEYDOWN_DISMISS, function (event) { if (event.which === ESCAPE_KEYCODE$1) { event.preventDefault(); - this.hide(); + + _this5.hide(); } }); } else if (!this._isShown) { EventHandler.off(this._element, Event$6.KEYDOWN_DISMISS); } - } + }; + + _proto._setResizeEvent = function _setResizeEvent() { + var _this6 = this; - _setResizeEvent() { if (this._isShown) { - EventHandler.on(window, Event$6.RESIZE, event => this.handleUpdate(event)); + EventHandler.on(window, Event$6.RESIZE, function (event) { + return _this6.handleUpdate(event); + }); } else { EventHandler.off(window, Event$6.RESIZE); } - } + }; + + _proto._hideModal = function _hideModal() { + var _this7 = this; - _hideModal() { this._element.style.display = 'none'; this._element.setAttribute('aria-hidden', true); @@ -2958,27 +3156,29 @@ class Modal { this._isTransitioning = false; - this._showBackdrop(() => { + this._showBackdrop(function () { document.body.classList.remove(ClassName$5.OPEN); - this._resetAdjustments(); + _this7._resetAdjustments(); - this._resetScrollbar(); + _this7._resetScrollbar(); - EventHandler.trigger(this._element, Event$6.HIDDEN); + EventHandler.trigger(_this7._element, Event$6.HIDDEN); }); - } + }; - _removeBackdrop() { + _proto._removeBackdrop = function _removeBackdrop() { if (this._backdrop) { this._backdrop.parentNode.removeChild(this._backdrop); this._backdrop = null; } - } + }; - _showBackdrop(callback) { - const animate = this._element.classList.contains(ClassName$5.FADE) ? ClassName$5.FADE : ''; + _proto._showBackdrop = function _showBackdrop(callback) { + var _this8 = this; + + var animate = this._element.classList.contains(ClassName$5.FADE) ? ClassName$5.FADE : ''; if (this._isShown && this._config.backdrop) { this._backdrop = document.createElement('div'); @@ -2989,9 +3189,9 @@ class Modal { } document.body.appendChild(this._backdrop); - EventHandler.on(this._element, Event$6.CLICK_DISMISS, event => { - if (this._ignoreBackdropClick) { - this._ignoreBackdropClick = false; + EventHandler.on(this._element, Event$6.CLICK_DISMISS, function (event) { + if (_this8._ignoreBackdropClick) { + _this8._ignoreBackdropClick = false; return; } @@ -2999,10 +3199,10 @@ class Modal { return; } - if (this._config.backdrop === 'static') { - this._element.focus(); + if (_this8._config.backdrop === 'static') { + _this8._element.focus(); } else { - this.hide(); + _this8.hide(); } }); @@ -3021,14 +3221,14 @@ class Modal { return; } - const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); EventHandler.one(this._backdrop, TRANSITION_END, callback); emulateTransitionEnd(this._backdrop, backdropTransitionDuration); } else if (!this._isShown && this._backdrop) { this._backdrop.classList.remove(ClassName$5.SHOW); - const callbackRemove = () => { - this._removeBackdrop(); + var callbackRemove = function callbackRemove() { + _this8._removeBackdrop(); if (callback) { callback(); @@ -3036,9 +3236,10 @@ class Modal { }; if (this._element.classList.contains(ClassName$5.FADE)) { - const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove); - emulateTransitionEnd(this._backdrop, backdropTransitionDuration); + emulateTransitionEnd(this._backdrop, _backdropTransitionDuration); } else { callbackRemove(); } @@ -3048,63 +3249,65 @@ class Modal { } // ---------------------------------------------------------------------- // the following methods are used to handle overflowing modals // ---------------------------------------------------------------------- + ; - - _adjustDialog() { - const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + _proto._adjustDialog = function _adjustDialog() { + var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; if (!this._isBodyOverflowing && isModalOverflowing) { - this._element.style.paddingLeft = `${this._scrollbarWidth}px`; + this._element.style.paddingLeft = this._scrollbarWidth + "px"; } if (this._isBodyOverflowing && !isModalOverflowing) { - this._element.style.paddingRight = `${this._scrollbarWidth}px`; + this._element.style.paddingRight = this._scrollbarWidth + "px"; } - } + }; - _resetAdjustments() { + _proto._resetAdjustments = function _resetAdjustments() { this._element.style.paddingLeft = ''; this._element.style.paddingRight = ''; - } + }; - _checkScrollbar() { - const rect = document.body.getBoundingClientRect(); + _proto._checkScrollbar = function _checkScrollbar() { + var rect = document.body.getBoundingClientRect(); this._isBodyOverflowing = rect.left + rect.right < window.innerWidth; this._scrollbarWidth = this._getScrollbarWidth(); - } + }; + + _proto._setScrollbar = function _setScrollbar() { + var _this9 = this; - _setScrollbar() { if (this._isBodyOverflowing) { // Note: DOMNode.style.paddingRight returns the actual value or '' if not set // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set // Adjust fixed content padding - makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(element => { - const actualPadding = element.style.paddingRight; - const calculatedPadding = window.getComputedStyle(element)['padding-right']; + makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(function (element) { + var actualPadding = element.style.paddingRight; + var calculatedPadding = window.getComputedStyle(element)['padding-right']; Manipulator.setDataAttribute(element, 'padding-right', actualPadding); - element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`; + element.style.paddingRight = parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px"; }); // Adjust sticky content margin - makeArray(SelectorEngine.find(Selector$5.STICKY_CONTENT)).forEach(element => { - const actualMargin = element.style.marginRight; - const calculatedMargin = window.getComputedStyle(element)['margin-right']; + makeArray(SelectorEngine.find(Selector$5.STICKY_CONTENT)).forEach(function (element) { + var actualMargin = element.style.marginRight; + var calculatedMargin = window.getComputedStyle(element)['margin-right']; Manipulator.setDataAttribute(element, 'margin-right', actualMargin); - element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`; + element.style.marginRight = parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px"; }); // Adjust body padding - const actualPadding = document.body.style.paddingRight; - const calculatedPadding = window.getComputedStyle(document.body)['padding-right']; + var actualPadding = document.body.style.paddingRight; + var calculatedPadding = window.getComputedStyle(document.body)['padding-right']; Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding); - document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`; + document.body.style.paddingRight = parseFloat(calculatedPadding) + this._scrollbarWidth + "px"; } document.body.classList.add(ClassName$5.OPEN); - } + }; - _resetScrollbar() { + _proto._resetScrollbar = function _resetScrollbar() { // Restore fixed content padding - makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(element => { - const padding = Manipulator.getDataAttribute(element, 'padding-right'); + makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(function (element) { + var padding = Manipulator.getDataAttribute(element, 'padding-right'); if (typeof padding !== 'undefined') { Manipulator.removeDataAttribute(element, 'padding-right'); @@ -3112,8 +3315,8 @@ class Modal { } }); // Restore sticky content and navbar-toggler margin - makeArray(SelectorEngine.find(`${Selector$5.STICKY_CONTENT}`)).forEach(element => { - const margin = Manipulator.getDataAttribute(element, 'margin-right'); + makeArray(SelectorEngine.find("" + Selector$5.STICKY_CONTENT)).forEach(function (element) { + var margin = Manipulator.getDataAttribute(element, 'margin-right'); if (typeof margin !== 'undefined') { Manipulator.removeDataAttribute(element, 'margin-right'); @@ -3121,7 +3324,7 @@ class Modal { } }); // Restore body padding - const padding = Manipulator.getDataAttribute(document.body, 'padding-right'); + var padding = Manipulator.getDataAttribute(document.body, 'padding-right'); if (typeof padding === 'undefined') { document.body.style.paddingRight = ''; @@ -3129,24 +3332,24 @@ class Modal { Manipulator.removeDataAttribute(document.body, 'padding-right'); document.body.style.paddingRight = padding; } - } + }; - _getScrollbarWidth() { + _proto._getScrollbarWidth = function _getScrollbarWidth() { // thx d.walsh - const scrollDiv = document.createElement('div'); + var scrollDiv = document.createElement('div'); scrollDiv.className = ClassName$5.SCROLLBAR_MEASURER; document.body.appendChild(scrollDiv); - const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; + var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; document.body.removeChild(scrollDiv); return scrollbarWidth; } // Static + ; - - static _jQueryInterface(config, relatedTarget) { + Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { return this.each(function () { - let data = Data.getData(this, DATA_KEY$5); + var data = Data.getData(this, DATA_KEY$5); - const _config = _extends({}, Default$3, Manipulator.getDataAttributes(this), typeof config === 'object' && config ? config : {}); + var _config = _objectSpread({}, Default$3, Manipulator.getDataAttributes(this), typeof config === 'object' && config ? config : {}); if (!data) { data = new Modal(this, _config); @@ -3154,7 +3357,7 @@ class Modal { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); + throw new TypeError("No method named \"" + config + "\""); } data[config](relatedTarget); @@ -3162,13 +3365,26 @@ class Modal { data.show(relatedTarget); } }); - } + }; - static _getInstance(element) { + Modal._getInstance = function _getInstance(element) { return Data.getData(element, DATA_KEY$5); - } + }; -} + _createClass(Modal, null, [{ + key: "VERSION", + get: function get() { + return VERSION$5; + } + }, { + key: "Default", + get: function get() { + return Default$3; + } + }]); + + return Modal; +}(); /** * ------------------------------------------------------------------------ * Data Api implementation @@ -3177,32 +3393,34 @@ class Modal { EventHandler.on(document, Event$6.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) { - let target; - const selector = getSelectorFromElement(this); + var _this10 = this; + + var target; + var selector = getSelectorFromElement(this); if (selector) { target = SelectorEngine.findOne(selector); } - const config = Data.getData(target, DATA_KEY$5) ? 'toggle' : _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); + var config = Data.getData(target, DATA_KEY$5) ? 'toggle' : _objectSpread({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); if (this.tagName === 'A' || this.tagName === 'AREA') { event.preventDefault(); } - EventHandler.one(target, Event$6.SHOW, showEvent => { + EventHandler.one(target, Event$6.SHOW, function (showEvent) { if (showEvent.defaultPrevented) { // only register focus restorer if modal will actually get shown return; } - EventHandler.one(target, Event$6.HIDDEN, () => { - if (isVisible(this)) { - this.focus(); + EventHandler.one(target, Event$6.HIDDEN, function () { + if (isVisible(_this10)) { + _this10.focus(); } }); }); - let data = Data.getData(target, DATA_KEY$5); + var data = Data.getData(target, DATA_KEY$5); if (!data) { data = new Modal(target, config); @@ -3217,12 +3435,12 @@ EventHandler.on(document, Event$6.CLICK_DATA_API, Selector$5.DATA_TOGGLE, functi */ if (typeof jQuery !== 'undefined') { - const JQUERY_NO_CONFLICT = jQuery.fn[NAME$5]; + var JQUERY_NO_CONFLICT$5 = jQuery.fn[NAME$5]; jQuery.fn[NAME$5] = Modal._jQueryInterface; jQuery.fn[NAME$5].Constructor = Modal; - jQuery.fn[NAME$5].noConflict = () => { - jQuery.fn[NAME$5] = JQUERY_NO_CONFLICT; + jQuery.fn[NAME$5].noConflict = function () { + jQuery.fn[NAME$5] = JQUERY_NO_CONFLICT$5; return Modal._jQueryInterface; }; } @@ -3233,25 +3451,25 @@ if (typeof jQuery !== 'undefined') { * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ -const uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']; -const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; +var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']; +var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; /** * A pattern that recognizes a commonly useful subset of URLs that are safe. * * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts */ -const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi; +var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi; /** * A pattern that matches safe data URLs. Only matches image, video and audio types. * * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts */ -const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i; +var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i; -const allowedAttribute = (attr, allowedAttributeList) => { - const attrName = attr.nodeName.toLowerCase(); +var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) { + var attrName = attr.nodeName.toLowerCase(); if (allowedAttributeList.indexOf(attrName) !== -1) { if (uriAttrs.indexOf(attrName) !== -1) { @@ -3261,9 +3479,11 @@ const allowedAttribute = (attr, allowedAttributeList) => { return true; } - const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp); // Check if a regular expression validates the attribute. + var regExp = allowedAttributeList.filter(function (attrRegex) { + return attrRegex instanceof RegExp; + }); // Check if a regular expression validates the attribute. - for (let i = 0, l = regExp.length; i < l; i++) { + for (var i = 0, l = regExp.length; i < l; i++) { if (attrName.match(regExp[i])) { return true; } @@ -3272,7 +3492,7 @@ const allowedAttribute = (attr, allowedAttributeList) => { return false; }; -const DefaultWhitelist = { +var DefaultWhitelist = { // Global attributes allowed on any supplied element below. '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], a: ['target', 'href', 'title', 'rel'], @@ -3314,27 +3534,33 @@ function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) { return sanitizeFn(unsafeHtml); } - const domParser = new window.DOMParser(); - const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); - const whitelistKeys = Object.keys(whiteList); - const elements = makeArray(createdDocument.body.querySelectorAll('*')); + var domParser = new window.DOMParser(); + var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); + var whitelistKeys = Object.keys(whiteList); + var elements = makeArray(createdDocument.body.querySelectorAll('*')); - for (let i = 0, len = elements.length; i < len; i++) { - const el = elements[i]; - const elName = el.nodeName.toLowerCase(); + var _loop = function _loop(i, len) { + var el = elements[i]; + var elName = el.nodeName.toLowerCase(); if (whitelistKeys.indexOf(elName) === -1) { el.parentNode.removeChild(el); - continue; + return "continue"; } - const attributeList = makeArray(el.attributes); - const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []); - attributeList.forEach(attr => { + var attributeList = makeArray(el.attributes); + var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []); + attributeList.forEach(function (attr) { if (!allowedAttribute(attr, whitelistedAttributes)) { el.removeAttribute(attr.nodeName); } }); + }; + + for (var i = 0, len = elements.length; i < len; i++) { + var _ret = _loop(i, len); + + if (_ret === "continue") continue; } return createdDocument.body.innerHTML; @@ -3346,14 +3572,14 @@ function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) { * ------------------------------------------------------------------------ */ -const NAME$6 = 'tooltip'; -const VERSION$6 = '4.3.1'; -const DATA_KEY$6 = 'bs.tooltip'; -const EVENT_KEY$6 = `.${DATA_KEY$6}`; -const CLASS_PREFIX = 'bs-tooltip'; -const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g'); -const DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']; -const DefaultType$4 = { +var NAME$6 = 'tooltip'; +var VERSION$6 = '4.3.1'; +var DATA_KEY$6 = 'bs.tooltip'; +var EVENT_KEY$6 = "." + DATA_KEY$6; +var CLASS_PREFIX = 'bs-tooltip'; +var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); +var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']; +var DefaultType$4 = { animation: 'boolean', template: 'string', title: '(string|element|function)', @@ -3370,14 +3596,14 @@ const DefaultType$4 = { sanitizeFn: '(null|function)', whiteList: 'object' }; -const AttachmentMap$1 = { +var AttachmentMap$1 = { AUTO: 'auto', TOP: 'top', RIGHT: 'right', BOTTOM: 'bottom', LEFT: 'left' }; -const Default$4 = { +var Default$4 = { animation: true, template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div></div>', trigger: 'hover focus', @@ -3394,31 +3620,31 @@ const Default$4 = { sanitizeFn: null, whiteList: DefaultWhitelist }; -const HoverState = { +var HoverState = { SHOW: 'show', OUT: 'out' }; -const Event$7 = { - HIDE: `hide${EVENT_KEY$6}`, - HIDDEN: `hidden${EVENT_KEY$6}`, - SHOW: `show${EVENT_KEY$6}`, - SHOWN: `shown${EVENT_KEY$6}`, - INSERTED: `inserted${EVENT_KEY$6}`, - CLICK: `click${EVENT_KEY$6}`, - FOCUSIN: `focusin${EVENT_KEY$6}`, - FOCUSOUT: `focusout${EVENT_KEY$6}`, - MOUSEENTER: `mouseenter${EVENT_KEY$6}`, - MOUSELEAVE: `mouseleave${EVENT_KEY$6}` +var Event$7 = { + HIDE: "hide" + EVENT_KEY$6, + HIDDEN: "hidden" + EVENT_KEY$6, + SHOW: "show" + EVENT_KEY$6, + SHOWN: "shown" + EVENT_KEY$6, + INSERTED: "inserted" + EVENT_KEY$6, + CLICK: "click" + EVENT_KEY$6, + FOCUSIN: "focusin" + EVENT_KEY$6, + FOCUSOUT: "focusout" + EVENT_KEY$6, + MOUSEENTER: "mouseenter" + EVENT_KEY$6, + MOUSELEAVE: "mouseleave" + EVENT_KEY$6 }; -const ClassName$6 = { +var ClassName$6 = { FADE: 'fade', SHOW: 'show' }; -const Selector$6 = { +var Selector$6 = { TOOLTIP_INNER: '.tooltip-inner', TOOLTIP_ARROW: '.tooltip-arrow' }; -const Trigger = { +var Trigger = { HOVER: 'hover', FOCUS: 'focus', CLICK: 'click', @@ -3431,8 +3657,10 @@ const Trigger = { }; -class Tooltip { - constructor(element, config) { +var Tooltip = +/*#__PURE__*/ +function () { + function Tooltip(element, config) { /** * Check for Popper dependency * Popper - https://popper.js.org @@ -3458,55 +3686,29 @@ class Tooltip { } // Getters - static get VERSION() { - return VERSION$6; - } - - static get Default() { - return Default$4; - } - - static get NAME() { - return NAME$6; - } - - static get DATA_KEY() { - return DATA_KEY$6; - } - - static get Event() { - return Event$7; - } + var _proto = Tooltip.prototype; - static get EVENT_KEY() { - return EVENT_KEY$6; - } - - static get DefaultType() { - return DefaultType$4; - } // Public - - - enable() { + // Public + _proto.enable = function enable() { this._isEnabled = true; - } + }; - disable() { + _proto.disable = function disable() { this._isEnabled = false; - } + }; - toggleEnabled() { + _proto.toggleEnabled = function toggleEnabled() { this._isEnabled = !this._isEnabled; - } + }; - toggle(event) { + _proto.toggle = function toggle(event) { if (!this._isEnabled) { return; } if (event) { - const dataKey = this.constructor.DATA_KEY; - let context = Data.getData(event.delegateTarget, dataKey); + var dataKey = this.constructor.DATA_KEY; + var context = Data.getData(event.delegateTarget, dataKey); if (!context) { context = new this.constructor(event.delegateTarget, this._getDelegateConfig()); @@ -3529,9 +3731,9 @@ class Tooltip { this._enter(null, this); } - } + }; - dispose() { + _proto.dispose = function dispose() { clearTimeout(this._timeout); Data.removeData(this.element, this.constructor.DATA_KEY); EventHandler.off(this.element, this.constructor.EVENT_KEY); @@ -3554,24 +3756,26 @@ class Tooltip { this.element = null; this.config = null; this.tip = null; - } + }; + + _proto.show = function show() { + var _this = this; - show() { if (this.element.style.display === 'none') { throw new Error('Please use show on visible elements'); } if (this.isWithContent() && this._isEnabled) { - const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW); - const shadowRoot = findShadowRoot(this.element); - const isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element); + var showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW); + var shadowRoot = findShadowRoot(this.element); + var isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element); if (showEvent.defaultPrevented || !isInTheDom) { return; } - const tip = this.getTipElement(); - const tipId = getUID(this.constructor.NAME); + var tip = this.getTipElement(); + var tipId = getUID(this.constructor.NAME); tip.setAttribute('id', tipId); this.element.setAttribute('aria-describedby', tipId); this.setContent(); @@ -3580,13 +3784,13 @@ class Tooltip { tip.classList.add(ClassName$6.FADE); } - const placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; + var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; - const attachment = this._getAttachment(placement); + var attachment = this._getAttachment(placement); this.addAttachmentClass(attachment); - const container = this._getContainer(); + var container = this._getContainer(); Data.setData(tip, this.constructor.DATA_KEY, this); @@ -3609,12 +3813,14 @@ class Tooltip { boundariesElement: this.config.boundary } }, - onCreate: data => { + onCreate: function onCreate(data) { if (data.originalPlacement !== data.placement) { - this._handlePopperPlacementChange(data); + _this._handlePopperPlacementChange(data); } }, - onUpdate: data => this._handlePopperPlacementChange(data) + onUpdate: function onUpdate(data) { + return _this._handlePopperPlacementChange(data); + } }); tip.classList.add(ClassName$6.SHOW); // If this is a touch-enabled device we add extra // empty mouseover listeners to the body's immediate children; @@ -3622,50 +3828,53 @@ class Tooltip { // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html if ('ontouchstart' in document.documentElement) { - makeArray(document.body.children).forEach(element => { + makeArray(document.body.children).forEach(function (element) { EventHandler.on(element, 'mouseover', noop()); }); } - const complete = () => { - if (this.config.animation) { - this._fixTransition(); + var complete = function complete() { + if (_this.config.animation) { + _this._fixTransition(); } - const prevHoverState = this._hoverState; - this._hoverState = null; - EventHandler.trigger(this.element, this.constructor.Event.SHOWN); + var prevHoverState = _this._hoverState; + _this._hoverState = null; + EventHandler.trigger(_this.element, _this.constructor.Event.SHOWN); if (prevHoverState === HoverState.OUT) { - this._leave(null, this); + _this._leave(null, _this); } }; if (this.tip.classList.contains(ClassName$6.FADE)) { - const transitionDuration = getTransitionDurationFromElement(this.tip); + var transitionDuration = getTransitionDurationFromElement(this.tip); EventHandler.one(this.tip, TRANSITION_END, complete); emulateTransitionEnd(this.tip, transitionDuration); } else { complete(); } } - } + }; - hide(callback) { - const tip = this.getTipElement(); + _proto.hide = function hide(callback) { + var _this2 = this; - const complete = () => { - if (this._hoverState !== HoverState.SHOW && tip.parentNode) { + var tip = this.getTipElement(); + + var complete = function complete() { + if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) { tip.parentNode.removeChild(tip); } - this._cleanTipClass(); + _this2._cleanTipClass(); + + _this2.element.removeAttribute('aria-describedby'); - this.element.removeAttribute('aria-describedby'); - EventHandler.trigger(this.element, this.constructor.Event.HIDDEN); + EventHandler.trigger(_this2.element, _this2.constructor.Event.HIDDEN); - if (this._popper !== null) { - this._popper.destroy(); + if (_this2._popper !== null) { + _this2._popper.destroy(); } if (callback) { @@ -3673,7 +3882,7 @@ class Tooltip { } }; - const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE); + var hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE); if (hideEvent.defaultPrevented) { return; @@ -3683,7 +3892,9 @@ class Tooltip { // empty mouseover listeners we added for iOS support if ('ontouchstart' in document.documentElement) { - makeArray(document.body.children).forEach(element => EventHandler.off(element, 'mouseover', noop)); + makeArray(document.body.children).forEach(function (element) { + return EventHandler.off(element, 'mouseover', noop); + }); } this._activeTrigger[Trigger.CLICK] = false; @@ -3691,7 +3902,7 @@ class Tooltip { this._activeTrigger[Trigger.HOVER] = false; if (this.tip.classList.contains(ClassName$6.FADE)) { - const transitionDuration = getTransitionDurationFromElement(tip); + var transitionDuration = getTransitionDurationFromElement(tip); EventHandler.one(tip, TRANSITION_END, complete); emulateTransitionEnd(tip, transitionDuration); } else { @@ -3699,42 +3910,42 @@ class Tooltip { } this._hoverState = ''; - } + }; - update() { + _proto.update = function update() { if (this._popper !== null) { this._popper.scheduleUpdate(); } } // Protected + ; - - isWithContent() { + _proto.isWithContent = function isWithContent() { return Boolean(this.getTitle()); - } + }; - addAttachmentClass(attachment) { - this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`); - } + _proto.addAttachmentClass = function addAttachmentClass(attachment) { + this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment); + }; - getTipElement() { + _proto.getTipElement = function getTipElement() { if (this.tip) { return this.tip; } - const element = document.createElement('div'); + var element = document.createElement('div'); element.innerHTML = this.config.template; this.tip = element.children[0]; return this.tip; - } + }; - setContent() { - const tip = this.getTipElement(); + _proto.setContent = function setContent() { + var tip = this.getTipElement(); this.setElementContent(SelectorEngine.findOne(Selector$6.TOOLTIP_INNER, tip), this.getTitle()); tip.classList.remove(ClassName$6.FADE); tip.classList.remove(ClassName$6.SHOW); - } + }; - setElementContent(element, content) { + _proto.setElementContent = function setElementContent(element, content) { if (element === null) { return; } @@ -3766,10 +3977,10 @@ class Tooltip { } else { element.innerText = content; } - } + }; - getTitle() { - let title = this.element.getAttribute('data-original-title'); + _proto.getTitle = function getTitle() { + var title = this.element.getAttribute('data-original-title'); if (!title) { title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; @@ -3777,14 +3988,16 @@ class Tooltip { return title; } // Private + ; + _proto._getOffset = function _getOffset() { + var _this3 = this; - _getOffset() { - const offset = {}; + var offset = {}; if (typeof this.config.offset === 'function') { - offset.fn = data => { - data.offsets = _extends({}, data.offsets, this.config.offset(data.offsets, this.element) || {}); + offset.fn = function (data) { + data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {}); return data; }; } else { @@ -3792,9 +4005,9 @@ class Tooltip { } return offset; - } + }; - _getContainer() { + _proto._getContainer = function _getContainer() { if (this.config.container === false) { return document.body; } @@ -3804,51 +4017,59 @@ class Tooltip { } return SelectorEngine.findOne(this.config.container); - } + }; - _getAttachment(placement) { + _proto._getAttachment = function _getAttachment(placement) { return AttachmentMap$1[placement.toUpperCase()]; - } + }; + + _proto._setListeners = function _setListeners() { + var _this4 = this; - _setListeners() { - const triggers = this.config.trigger.split(' '); - triggers.forEach(trigger => { + var triggers = this.config.trigger.split(' '); + triggers.forEach(function (trigger) { if (trigger === 'click') { - EventHandler.on(this.element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event)); + EventHandler.on(_this4.element, _this4.constructor.Event.CLICK, _this4.config.selector, function (event) { + return _this4.toggle(event); + }); } else if (trigger !== Trigger.MANUAL) { - const eventIn = trigger === Trigger.HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN; - const eventOut = trigger === Trigger.HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT; - EventHandler.on(this.element, eventIn, this.config.selector, event => this._enter(event)); - EventHandler.on(this.element, eventOut, this.config.selector, event => this._leave(event)); + var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN; + var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT; + EventHandler.on(_this4.element, eventIn, _this4.config.selector, function (event) { + return _this4._enter(event); + }); + EventHandler.on(_this4.element, eventOut, _this4.config.selector, function (event) { + return _this4._leave(event); + }); } }); - EventHandler.on(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', () => { - if (this.element) { - this.hide(); + EventHandler.on(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', function () { + if (_this4.element) { + _this4.hide(); } }); if (this.config.selector) { - this.config = _extends({}, this.config, { + this.config = _objectSpread({}, this.config, { trigger: 'manual', selector: '' }); } else { this._fixTitle(); } - } + }; - _fixTitle() { - const titleType = typeof this.element.getAttribute('data-original-title'); + _proto._fixTitle = function _fixTitle() { + var titleType = typeof this.element.getAttribute('data-original-title'); if (this.element.getAttribute('title') || titleType !== 'string') { this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); this.element.setAttribute('title', ''); } - } + }; - _enter(event, context) { - const dataKey = this.constructor.DATA_KEY; + _proto._enter = function _enter(event, context) { + var dataKey = this.constructor.DATA_KEY; context = context || Data.getData(event.delegateTarget, dataKey); if (!context) { @@ -3873,15 +4094,15 @@ class Tooltip { return; } - context._timeout = setTimeout(() => { + context._timeout = setTimeout(function () { if (context._hoverState === HoverState.SHOW) { context.show(); } }, context.config.delay.show); - } + }; - _leave(event, context) { - const dataKey = this.constructor.DATA_KEY; + _proto._leave = function _leave(event, context) { + var dataKey = this.constructor.DATA_KEY; context = context || Data.getData(event.delegateTarget, dataKey); if (!context) { @@ -3905,26 +4126,26 @@ class Tooltip { return; } - context._timeout = setTimeout(() => { + context._timeout = setTimeout(function () { if (context._hoverState === HoverState.OUT) { context.hide(); } }, context.config.delay.hide); - } + }; - _isWithActiveTrigger() { - for (const trigger in this._activeTrigger) { + _proto._isWithActiveTrigger = function _isWithActiveTrigger() { + for (var trigger in this._activeTrigger) { if (this._activeTrigger[trigger]) { return true; } } return false; - } + }; - _getConfig(config) { - const dataAttributes = Manipulator.getDataAttributes(this.element); - Object.keys(dataAttributes).forEach(dataAttr => { + _proto._getConfig = function _getConfig(config) { + var dataAttributes = Manipulator.getDataAttributes(this.element); + Object.keys(dataAttributes).forEach(function (dataAttr) { if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { delete dataAttributes[dataAttr]; } @@ -3934,7 +4155,7 @@ class Tooltip { config.container = config.container[0]; } - config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {}); + config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {}); if (typeof config.delay === 'number') { config.delay = { @@ -3958,13 +4179,13 @@ class Tooltip { } return config; - } + }; - _getDelegateConfig() { - const config = {}; + _proto._getDelegateConfig = function _getDelegateConfig() { + var config = {}; if (this.config) { - for (const key in this.config) { + for (var key in this.config) { if (this.constructor.Default[key] !== this.config[key]) { config[key] = this.config[key]; } @@ -3972,29 +4193,33 @@ class Tooltip { } return config; - } + }; - _cleanTipClass() { - const tip = this.getTipElement(); - const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX); + _proto._cleanTipClass = function _cleanTipClass() { + var tip = this.getTipElement(); + var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX); if (tabClass !== null && tabClass.length) { - tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass)); + tabClass.map(function (token) { + return token.trim(); + }).forEach(function (tClass) { + return tip.classList.remove(tClass); + }); } - } + }; - _handlePopperPlacementChange(popperData) { - const popperInstance = popperData.instance; + _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) { + var popperInstance = popperData.instance; this.tip = popperInstance.popper; this._cleanTipClass(); this.addAttachmentClass(this._getAttachment(popperData.placement)); - } + }; - _fixTransition() { - const tip = this.getTipElement(); - const initConfigAnimation = this.config.animation; + _proto._fixTransition = function _fixTransition() { + var tip = this.getTipElement(); + var initConfigAnimation = this.config.animation; if (tip.getAttribute('x-placement') !== null) { return; @@ -4006,13 +4231,13 @@ class Tooltip { this.show(); this.config.animation = initConfigAnimation; } // Static + ; - - static _jQueryInterface(config) { + Tooltip._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - let data = Data.getData(this, DATA_KEY$6); + var data = Data.getData(this, DATA_KEY$6); - const _config = typeof config === 'object' && config; + var _config = typeof config === 'object' && config; if (!data && /dispose|hide/.test(config)) { return; @@ -4024,19 +4249,57 @@ class Tooltip { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); + throw new TypeError("No method named \"" + config + "\""); } data[config](); } }); - } + }; - static _getInstance(element) { + Tooltip._getInstance = function _getInstance(element) { return Data.getData(element, DATA_KEY$6); - } + }; -} + _createClass(Tooltip, null, [{ + key: "VERSION", + get: function get() { + return VERSION$6; + } + }, { + key: "Default", + get: function get() { + return Default$4; + } + }, { + key: "NAME", + get: function get() { + return NAME$6; + } + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY$6; + } + }, { + key: "Event", + get: function get() { + return Event$7; + } + }, { + key: "EVENT_KEY", + get: function get() { + return EVENT_KEY$6; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType$4; + } + }]); + + return Tooltip; +}(); /** * ------------------------------------------------------------------------ * jQuery @@ -4046,12 +4309,12 @@ class Tooltip { if (typeof jQuery !== 'undefined') { - const JQUERY_NO_CONFLICT = jQuery.fn[NAME$6]; + var JQUERY_NO_CONFLICT$6 = jQuery.fn[NAME$6]; jQuery.fn[NAME$6] = Tooltip._jQueryInterface; jQuery.fn[NAME$6].Constructor = Tooltip; - jQuery.fn[NAME$6].noConflict = () => { - jQuery.fn[NAME$6] = JQUERY_NO_CONFLICT; + jQuery.fn[NAME$6].noConflict = function () { + jQuery.fn[NAME$6] = JQUERY_NO_CONFLICT$6; return Tooltip._jQueryInterface; }; } @@ -4062,43 +4325,43 @@ if (typeof jQuery !== 'undefined') { * ------------------------------------------------------------------------ */ -const NAME$7 = 'popover'; -const VERSION$7 = '4.3.1'; -const DATA_KEY$7 = 'bs.popover'; -const EVENT_KEY$7 = `.${DATA_KEY$7}`; -const CLASS_PREFIX$1 = 'bs-popover'; -const BSCLS_PREFIX_REGEX$1 = new RegExp(`(^|\\s)${CLASS_PREFIX$1}\\S+`, 'g'); +var NAME$7 = 'popover'; +var VERSION$7 = '4.3.1'; +var DATA_KEY$7 = 'bs.popover'; +var EVENT_KEY$7 = "." + DATA_KEY$7; +var CLASS_PREFIX$1 = 'bs-popover'; +var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g'); -const Default$5 = _extends({}, Tooltip.Default, { +var Default$5 = _objectSpread({}, Tooltip.Default, { placement: 'right', trigger: 'click', content: '', template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>' }); -const DefaultType$5 = _extends({}, Tooltip.DefaultType, { +var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, { content: '(string|element|function)' }); -const ClassName$7 = { +var ClassName$7 = { FADE: 'fade', SHOW: 'show' }; -const Selector$7 = { +var Selector$7 = { TITLE: '.popover-header', CONTENT: '.popover-body' }; -const Event$8 = { - HIDE: `hide${EVENT_KEY$7}`, - HIDDEN: `hidden${EVENT_KEY$7}`, - SHOW: `show${EVENT_KEY$7}`, - SHOWN: `shown${EVENT_KEY$7}`, - INSERTED: `inserted${EVENT_KEY$7}`, - CLICK: `click${EVENT_KEY$7}`, - FOCUSIN: `focusin${EVENT_KEY$7}`, - FOCUSOUT: `focusout${EVENT_KEY$7}`, - MOUSEENTER: `mouseenter${EVENT_KEY$7}`, - MOUSELEAVE: `mouseleave${EVENT_KEY$7}` +var Event$8 = { + HIDE: "hide" + EVENT_KEY$7, + HIDDEN: "hidden" + EVENT_KEY$7, + SHOW: "show" + EVENT_KEY$7, + SHOWN: "shown" + EVENT_KEY$7, + INSERTED: "inserted" + EVENT_KEY$7, + CLICK: "click" + EVENT_KEY$7, + FOCUSIN: "focusin" + EVENT_KEY$7, + FOCUSOUT: "focusout" + EVENT_KEY$7, + MOUSEENTER: "mouseenter" + EVENT_KEY$7, + MOUSELEAVE: "mouseleave" + EVENT_KEY$7 /** * ------------------------------------------------------------------------ * Class Definition @@ -4107,51 +4370,32 @@ const Event$8 = { }; -class Popover extends Tooltip { - // Getters - static get VERSION() { - return VERSION$7; - } - - static get Default() { - return Default$5; - } - - static get NAME() { - return NAME$7; - } - - static get DATA_KEY() { - return DATA_KEY$7; - } - - static get Event() { - return Event$8; - } +var Popover = +/*#__PURE__*/ +function (_Tooltip) { + _inheritsLoose(Popover, _Tooltip); - static get EVENT_KEY() { - return EVENT_KEY$7; + function Popover() { + return _Tooltip.apply(this, arguments) || this; } - static get DefaultType() { - return DefaultType$5; - } // Overrides + var _proto = Popover.prototype; - - isWithContent() { + // Overrides + _proto.isWithContent = function isWithContent() { return this.getTitle() || this._getContent(); - } + }; - addAttachmentClass(attachment) { - this.getTipElement().classList.add(`${CLASS_PREFIX$1}-${attachment}`); - } + _proto.addAttachmentClass = function addAttachmentClass(attachment) { + this.getTipElement().classList.add(CLASS_PREFIX$1 + "-" + attachment); + }; - setContent() { - const tip = this.getTipElement(); // we use append for html objects to maintain js events + _proto.setContent = function setContent() { + var tip = this.getTipElement(); // we use append for html objects to maintain js events this.setElementContent(SelectorEngine.findOne(Selector$7.TITLE, tip), this.getTitle()); - let content = this._getContent(); + var content = this._getContent(); if (typeof content === 'function') { content = content.call(this.element); @@ -4161,27 +4405,31 @@ class Popover extends Tooltip { tip.classList.remove(ClassName$7.FADE); tip.classList.remove(ClassName$7.SHOW); } // Private + ; - - _getContent() { + _proto._getContent = function _getContent() { return this.element.getAttribute('data-content') || this.config.content; - } + }; - _cleanTipClass() { - const tip = this.getTipElement(); - const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1); + _proto._cleanTipClass = function _cleanTipClass() { + var tip = this.getTipElement(); + var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1); if (tabClass !== null && tabClass.length > 0) { - tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass)); + tabClass.map(function (token) { + return token.trim(); + }).forEach(function (tClass) { + return tip.classList.remove(tClass); + }); } } // Static + ; - - static _jQueryInterface(config) { + Popover._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - let data = Data.getData(this, DATA_KEY$7); + var data = Data.getData(this, DATA_KEY$7); - const _config = typeof config === 'object' ? config : null; + var _config = typeof config === 'object' ? config : null; if (!data && /dispose|hide/.test(config)) { return; @@ -4194,19 +4442,58 @@ class Popover extends Tooltip { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); + throw new TypeError("No method named \"" + config + "\""); } data[config](); } }); - } + }; - static _getInstance(element) { + Popover._getInstance = function _getInstance(element) { return Data.getData(element, DATA_KEY$7); - } + }; -} + _createClass(Popover, null, [{ + key: "VERSION", + // Getters + get: function get() { + return VERSION$7; + } + }, { + key: "Default", + get: function get() { + return Default$5; + } + }, { + key: "NAME", + get: function get() { + return NAME$7; + } + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY$7; + } + }, { + key: "Event", + get: function get() { + return Event$8; + } + }, { + key: "EVENT_KEY", + get: function get() { + return EVENT_KEY$7; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType$5; + } + }]); + + return Popover; +}(Tooltip); /** * ------------------------------------------------------------------------ * jQuery @@ -4215,12 +4502,12 @@ class Popover extends Tooltip { if (typeof jQuery !== 'undefined') { - const JQUERY_NO_CONFLICT = jQuery.fn[NAME$7]; + var JQUERY_NO_CONFLICT$7 = jQuery.fn[NAME$7]; jQuery.fn[NAME$7] = Popover._jQueryInterface; jQuery.fn[NAME$7].Constructor = Popover; - jQuery.fn[NAME$7].noConflict = () => { - jQuery.fn[NAME$7] = JQUERY_NO_CONFLICT; + jQuery.fn[NAME$7].noConflict = function () { + jQuery.fn[NAME$7] = JQUERY_NO_CONFLICT$7; return Popover._jQueryInterface; }; } @@ -4231,31 +4518,31 @@ if (typeof jQuery !== 'undefined') { * ------------------------------------------------------------------------ */ -const NAME$8 = 'scrollspy'; -const VERSION$8 = '4.3.1'; -const DATA_KEY$8 = 'bs.scrollspy'; -const EVENT_KEY$8 = `.${DATA_KEY$8}`; -const DATA_API_KEY$6 = '.data-api'; -const Default$6 = { +var NAME$8 = 'scrollspy'; +var VERSION$8 = '4.3.1'; +var DATA_KEY$8 = 'bs.scrollspy'; +var EVENT_KEY$8 = "." + DATA_KEY$8; +var DATA_API_KEY$6 = '.data-api'; +var Default$6 = { offset: 10, method: 'auto', target: '' }; -const DefaultType$6 = { +var DefaultType$6 = { offset: 'number', method: 'string', target: '(string|element)' }; -const Event$9 = { - ACTIVATE: `activate${EVENT_KEY$8}`, - SCROLL: `scroll${EVENT_KEY$8}`, - LOAD_DATA_API: `load${EVENT_KEY$8}${DATA_API_KEY$6}` +var Event$9 = { + ACTIVATE: "activate" + EVENT_KEY$8, + SCROLL: "scroll" + EVENT_KEY$8, + LOAD_DATA_API: "load" + EVENT_KEY$8 + DATA_API_KEY$6 }; -const ClassName$8 = { +var ClassName$8 = { DROPDOWN_ITEM: 'dropdown-item', ACTIVE: 'active' }; -const Selector$8 = { +var Selector$8 = { DATA_SPY: '[data-spy="scroll"]', NAV_LIST_GROUP: '.nav, .list-group', NAV_LINKS: '.nav-link', @@ -4264,7 +4551,7 @@ const Selector$8 = { DROPDOWN: '.dropdown', DROPDOWN_TOGGLE: '.dropdown-toggle' }; -const OffsetMethod = { +var OffsetMethod = { OFFSET: 'offset', POSITION: 'position' /** @@ -4275,17 +4562,23 @@ const OffsetMethod = { }; -class ScrollSpy { - constructor(element, config) { +var ScrollSpy = +/*#__PURE__*/ +function () { + function ScrollSpy(element, config) { + var _this = this; + this._element = element; this._scrollElement = element.tagName === 'BODY' ? window : element; this._config = this._getConfig(config); - this._selector = `${this._config.target} ${Selector$8.NAV_LINKS},` + `${this._config.target} ${Selector$8.LIST_ITEMS},` + `${this._config.target} .${ClassName$8.DROPDOWN_ITEM}`; + this._selector = this._config.target + " " + Selector$8.NAV_LINKS + "," + (this._config.target + " " + Selector$8.LIST_ITEMS + ",") + (this._config.target + " ." + ClassName$8.DROPDOWN_ITEM); this._offsets = []; this._targets = []; this._activeTarget = null; this._scrollHeight = 0; - EventHandler.on(this._scrollElement, Event$9.SCROLL, event => this._process(event)); + EventHandler.on(this._scrollElement, Event$9.SCROLL, function (event) { + return _this._process(event); + }); this.refresh(); this._process(); @@ -4294,33 +4587,29 @@ class ScrollSpy { } // Getters - static get VERSION() { - return VERSION$8; - } + var _proto = ScrollSpy.prototype; - static get Default() { - return Default$6; - } // Public + // Public + _proto.refresh = function refresh() { + var _this2 = this; - - refresh() { - const autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION; - const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; - const offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; + var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION; + var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; + var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; this._offsets = []; this._targets = []; this._scrollHeight = this._getScrollHeight(); - const targets = makeArray(SelectorEngine.find(this._selector)); - targets.map(element => { - let target; - const targetSelector = getSelectorFromElement(element); + var targets = makeArray(SelectorEngine.find(this._selector)); + targets.map(function (element) { + var target; + var targetSelector = getSelectorFromElement(element); if (targetSelector) { target = SelectorEngine.findOne(targetSelector); } if (target) { - const targetBCR = target.getBoundingClientRect(); + var targetBCR = target.getBoundingClientRect(); if (targetBCR.width || targetBCR.height) { return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector]; @@ -4328,14 +4617,18 @@ class ScrollSpy { } return null; - }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => { - this._offsets.push(item[0]); - - this._targets.push(item[1]); + }).filter(function (item) { + return item; + }).sort(function (a, b) { + return a[0] - b[0]; + }).forEach(function (item) { + _this2._offsets.push(item[0]); + + _this2._targets.push(item[1]); }); - } + }; - dispose() { + _proto.dispose = function dispose() { Data.removeData(this._element, DATA_KEY$8); EventHandler.off(this._scrollElement, EVENT_KEY$8); this._element = null; @@ -4347,51 +4640,51 @@ class ScrollSpy { this._activeTarget = null; this._scrollHeight = null; } // Private + ; - - _getConfig(config) { - config = _extends({}, Default$6, typeof config === 'object' && config ? config : {}); + _proto._getConfig = function _getConfig(config) { + config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {}); if (typeof config.target !== 'string') { - let id = config.target.id; + var id = config.target.id; if (!id) { id = getUID(NAME$8); config.target.id = id; } - config.target = `#${id}`; + config.target = "#" + id; } typeCheckConfig(NAME$8, config, DefaultType$6); return config; - } + }; - _getScrollTop() { + _proto._getScrollTop = function _getScrollTop() { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; - } + }; - _getScrollHeight() { + _proto._getScrollHeight = function _getScrollHeight() { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); - } + }; - _getOffsetHeight() { + _proto._getOffsetHeight = function _getOffsetHeight() { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; - } + }; - _process() { - const scrollTop = this._getScrollTop() + this._config.offset; + _proto._process = function _process() { + var scrollTop = this._getScrollTop() + this._config.offset; - const scrollHeight = this._getScrollHeight(); + var scrollHeight = this._getScrollHeight(); - const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); + var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); if (this._scrollHeight !== scrollHeight) { this.refresh(); } if (scrollTop >= maxScroll) { - const target = this._targets[this._targets.length - 1]; + var target = this._targets[this._targets.length - 1]; if (this._activeTarget !== target) { this._activate(target); @@ -4408,25 +4701,27 @@ class ScrollSpy { return; } - const offsetLength = this._offsets.length; + var offsetLength = this._offsets.length; - for (let i = offsetLength; i--;) { - const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); + for (var i = offsetLength; i--;) { + var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); if (isActiveTarget) { this._activate(this._targets[i]); } } - } + }; - _activate(target) { + _proto._activate = function _activate(target) { this._activeTarget = target; this._clear(); - const queries = this._selector.split(',').map(selector => `${selector}[data-target="${target}"],${selector}[href="${target}"]`); + var queries = this._selector.split(',').map(function (selector) { + return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]"; + }); - const link = SelectorEngine.findOne(queries.join(',')); + var link = SelectorEngine.findOne(queries.join(',')); if (link.classList.contains(ClassName$8.DROPDOWN_ITEM)) { SelectorEngine.findOne(Selector$8.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector$8.DROPDOWN)).classList.add(ClassName$8.ACTIVE); @@ -4434,13 +4729,17 @@ class ScrollSpy { } else { // Set triggered link as active link.classList.add(ClassName$8.ACTIVE); - SelectorEngine.parents(link, Selector$8.NAV_LIST_GROUP).forEach(listGroup => { + SelectorEngine.parents(link, Selector$8.NAV_LIST_GROUP).forEach(function (listGroup) { // Set triggered links parents as active // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor - SelectorEngine.prev(listGroup, `${Selector$8.NAV_LINKS}, ${Selector$8.LIST_ITEMS}`).forEach(item => item.classList.add(ClassName$8.ACTIVE)); // Handle special case when .nav-link is inside .nav-item + SelectorEngine.prev(listGroup, Selector$8.NAV_LINKS + ", " + Selector$8.LIST_ITEMS).forEach(function (item) { + return item.classList.add(ClassName$8.ACTIVE); + }); // Handle special case when .nav-link is inside .nav-item - SelectorEngine.prev(listGroup, Selector$8.NAV_ITEMS).forEach(navItem => { - SelectorEngine.children(navItem, Selector$8.NAV_LINKS).forEach(item => item.classList.add(ClassName$8.ACTIVE)); + SelectorEngine.prev(listGroup, Selector$8.NAV_ITEMS).forEach(function (navItem) { + SelectorEngine.children(navItem, Selector$8.NAV_LINKS).forEach(function (item) { + return item.classList.add(ClassName$8.ACTIVE); + }); }); }); } @@ -4448,18 +4747,22 @@ class ScrollSpy { EventHandler.trigger(this._scrollElement, Event$9.ACTIVATE, { relatedTarget: target }); - } + }; - _clear() { - makeArray(SelectorEngine.find(this._selector)).filter(node => node.classList.contains(ClassName$8.ACTIVE)).forEach(node => node.classList.remove(ClassName$8.ACTIVE)); + _proto._clear = function _clear() { + makeArray(SelectorEngine.find(this._selector)).filter(function (node) { + return node.classList.contains(ClassName$8.ACTIVE); + }).forEach(function (node) { + return node.classList.remove(ClassName$8.ACTIVE); + }); } // Static + ; - - static _jQueryInterface(config) { + ScrollSpy._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - let data = Data.getData(this, DATA_KEY$8); + var data = Data.getData(this, DATA_KEY$8); - const _config = typeof config === 'object' && config; + var _config = typeof config === 'object' && config; if (!data) { data = new ScrollSpy(this, _config); @@ -4467,19 +4770,32 @@ class ScrollSpy { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); + throw new TypeError("No method named \"" + config + "\""); } data[config](); } }); - } + }; - static _getInstance(element) { + ScrollSpy._getInstance = function _getInstance(element) { return Data.getData(element, DATA_KEY$8); - } + }; -} + _createClass(ScrollSpy, null, [{ + key: "VERSION", + get: function get() { + return VERSION$8; + } + }, { + key: "Default", + get: function get() { + return Default$6; + } + }]); + + return ScrollSpy; +}(); /** * ------------------------------------------------------------------------ * Data Api implementation @@ -4487,8 +4803,10 @@ class ScrollSpy { */ -EventHandler.on(window, Event$9.LOAD_DATA_API, () => { - makeArray(SelectorEngine.find(Selector$8.DATA_SPY)).forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy))); +EventHandler.on(window, Event$9.LOAD_DATA_API, function () { + makeArray(SelectorEngine.find(Selector$8.DATA_SPY)).forEach(function (spy) { + return new ScrollSpy(spy, Manipulator.getDataAttributes(spy)); + }); }); /** * ------------------------------------------------------------------------ @@ -4497,48 +4815,42 @@ EventHandler.on(window, Event$9.LOAD_DATA_API, () => { */ if (typeof jQuery !== 'undefined') { - const JQUERY_NO_CONFLICT = jQuery.fn[NAME$8]; + var JQUERY_NO_CONFLICT$8 = jQuery.fn[NAME$8]; jQuery.fn[NAME$8] = ScrollSpy._jQueryInterface; jQuery.fn[NAME$8].Constructor = ScrollSpy; - jQuery.fn[NAME$8].noConflict = () => { - jQuery.fn[NAME$8] = JQUERY_NO_CONFLICT; + jQuery.fn[NAME$8].noConflict = function () { + jQuery.fn[NAME$8] = JQUERY_NO_CONFLICT$8; return ScrollSpy._jQueryInterface; }; } /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.3.1): tab.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ -/** * ------------------------------------------------------------------------ * Constants * ------------------------------------------------------------------------ */ -const NAME$9 = 'tab'; -const VERSION$9 = '4.3.1'; -const DATA_KEY$9 = 'bs.tab'; -const EVENT_KEY$9 = `.${DATA_KEY$9}`; -const DATA_API_KEY$7 = '.data-api'; -const Event$a = { - HIDE: `hide${EVENT_KEY$9}`, - HIDDEN: `hidden${EVENT_KEY$9}`, - SHOW: `show${EVENT_KEY$9}`, - SHOWN: `shown${EVENT_KEY$9}`, - CLICK_DATA_API: `click${EVENT_KEY$9}${DATA_API_KEY$7}` +var NAME$9 = 'tab'; +var VERSION$9 = '4.3.1'; +var DATA_KEY$9 = 'bs.tab'; +var EVENT_KEY$9 = "." + DATA_KEY$9; +var DATA_API_KEY$7 = '.data-api'; +var Event$a = { + HIDE: "hide" + EVENT_KEY$9, + HIDDEN: "hidden" + EVENT_KEY$9, + SHOW: "show" + EVENT_KEY$9, + SHOWN: "shown" + EVENT_KEY$9, + CLICK_DATA_API: "click" + EVENT_KEY$9 + DATA_API_KEY$7 }; -const ClassName$9 = { +var ClassName$9 = { DROPDOWN_MENU: 'dropdown-menu', ACTIVE: 'active', DISABLED: 'disabled', FADE: 'fade', SHOW: 'show' }; -const Selector$9 = { +var Selector$9 = { DROPDOWN: '.dropdown', NAV_LIST_GROUP: '.nav, .list-group', ACTIVE: '.active', @@ -4554,35 +4866,37 @@ const Selector$9 = { }; -class Tab { - constructor(element) { +var Tab = +/*#__PURE__*/ +function () { + function Tab(element) { this._element = element; Data.setData(this._element, DATA_KEY$9, this); } // Getters - static get VERSION() { - return VERSION$9; - } // Public + var _proto = Tab.prototype; + // Public + _proto.show = function show() { + var _this = this; - show() { if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(ClassName$9.ACTIVE) || this._element.classList.contains(ClassName$9.DISABLED)) { return; } - let target; - let previous; - const listElement = SelectorEngine.closest(this._element, Selector$9.NAV_LIST_GROUP); - const selector = getSelectorFromElement(this._element); + var target; + var previous; + var listElement = SelectorEngine.closest(this._element, Selector$9.NAV_LIST_GROUP); + var selector = getSelectorFromElement(this._element); if (listElement) { - const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector$9.ACTIVE_UL : Selector$9.ACTIVE; + var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector$9.ACTIVE_UL : Selector$9.ACTIVE; previous = makeArray(SelectorEngine.find(itemSelector, listElement)); previous = previous[previous.length - 1]; } - let hideEvent = null; + var hideEvent = null; if (previous) { hideEvent = EventHandler.trigger(previous, Event$a.HIDE, { @@ -4590,7 +4904,7 @@ class Tab { }); } - const showEvent = EventHandler.trigger(this._element, Event$a.SHOW, { + var showEvent = EventHandler.trigger(this._element, Event$a.SHOW, { relatedTarget: previous }); @@ -4604,11 +4918,11 @@ class Tab { this._activate(this._element, listElement); - const complete = () => { + var complete = function complete() { EventHandler.trigger(previous, Event$a.HIDDEN, { - relatedTarget: this._element + relatedTarget: _this._element }); - EventHandler.trigger(this._element, Event$a.SHOWN, { + EventHandler.trigger(_this._element, Event$a.SHOWN, { relatedTarget: previous }); }; @@ -4618,35 +4932,39 @@ class Tab { } else { complete(); } - } + }; - dispose() { + _proto.dispose = function dispose() { Data.removeData(this._element, DATA_KEY$9); this._element = null; } // Private + ; + _proto._activate = function _activate(element, container, callback) { + var _this2 = this; - _activate(element, container, callback) { - const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(Selector$9.ACTIVE_UL, container) : SelectorEngine.children(container, Selector$9.ACTIVE); - const active = activeElements[0]; - const isTransitioning = callback && active && active.classList.contains(ClassName$9.FADE); + var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(Selector$9.ACTIVE_UL, container) : SelectorEngine.children(container, Selector$9.ACTIVE); + var active = activeElements[0]; + var isTransitioning = callback && active && active.classList.contains(ClassName$9.FADE); - const complete = () => this._transitionComplete(element, active, callback); + var complete = function complete() { + return _this2._transitionComplete(element, active, callback); + }; if (active && isTransitioning) { - const transitionDuration = getTransitionDurationFromElement(active); + var transitionDuration = getTransitionDurationFromElement(active); active.classList.remove(ClassName$9.SHOW); EventHandler.one(active, TRANSITION_END, complete); emulateTransitionEnd(active, transitionDuration); } else { complete(); } - } + }; - _transitionComplete(element, active, callback) { + _proto._transitionComplete = function _transitionComplete(element, active, callback) { if (active) { active.classList.remove(ClassName$9.ACTIVE); - const dropdownChild = SelectorEngine.findOne(Selector$9.DROPDOWN_ACTIVE_CHILD, active.parentNode); + var dropdownChild = SelectorEngine.findOne(Selector$9.DROPDOWN_ACTIVE_CHILD, active.parentNode); if (dropdownChild) { dropdownChild.classList.remove(ClassName$9.ACTIVE); @@ -4670,10 +4988,12 @@ class Tab { } if (element.parentNode && element.parentNode.classList.contains(ClassName$9.DROPDOWN_MENU)) { - const dropdownElement = SelectorEngine.closest(element, Selector$9.DROPDOWN); + var dropdownElement = SelectorEngine.closest(element, Selector$9.DROPDOWN); if (dropdownElement) { - makeArray(SelectorEngine.find(Selector$9.DROPDOWN_TOGGLE)).forEach(dropdown => dropdown.classList.add(ClassName$9.ACTIVE)); + makeArray(SelectorEngine.find(Selector$9.DROPDOWN_TOGGLE)).forEach(function (dropdown) { + return dropdown.classList.add(ClassName$9.ACTIVE); + }); } element.setAttribute('aria-expanded', true); @@ -4683,27 +5003,35 @@ class Tab { callback(); } } // Static + ; - - static _jQueryInterface(config) { + Tab._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - const data = Data.getData(this, DATA_KEY$9) || new Tab(this); + var data = Data.getData(this, DATA_KEY$9) || new Tab(this); if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); + throw new TypeError("No method named \"" + config + "\""); } data[config](); } }); - } + }; - static _getInstance(element) { + Tab._getInstance = function _getInstance(element) { return Data.getData(element, DATA_KEY$9); - } + }; -} + _createClass(Tab, null, [{ + key: "VERSION", + get: function get() { + return VERSION$9; + } + }]); + + return Tab; +}(); /** * ------------------------------------------------------------------------ * Data Api implementation @@ -4713,7 +5041,7 @@ class Tab { EventHandler.on(document, Event$a.CLICK_DATA_API, Selector$9.DATA_TOGGLE, function (event) { event.preventDefault(); - const data = Data.getData(this, DATA_KEY$9) || new Tab(this); + var data = Data.getData(this, DATA_KEY$9) || new Tab(this); data.show(); }); /** @@ -4724,12 +5052,12 @@ EventHandler.on(document, Event$a.CLICK_DATA_API, Selector$9.DATA_TOGGLE, functi */ if (typeof jQuery !== 'undefined') { - const JQUERY_NO_CONFLICT = jQuery.fn[NAME$9]; + var JQUERY_NO_CONFLICT$9 = jQuery.fn[NAME$9]; jQuery.fn[NAME$9] = Tab._jQueryInterface; jQuery.fn[NAME$9].Constructor = Tab; - jQuery.fn[NAME$9].noConflict = () => { - jQuery.fn[NAME$9] = JQUERY_NO_CONFLICT; + jQuery.fn[NAME$9].noConflict = function () { + jQuery.fn[NAME$9] = JQUERY_NO_CONFLICT$9; return Tab._jQueryInterface; }; } @@ -4740,34 +5068,34 @@ if (typeof jQuery !== 'undefined') { * ------------------------------------------------------------------------ */ -const NAME$a = 'toast'; -const VERSION$a = '4.3.1'; -const DATA_KEY$a = 'bs.toast'; -const EVENT_KEY$a = `.${DATA_KEY$a}`; -const Event$b = { - CLICK_DISMISS: `click.dismiss${EVENT_KEY$a}`, - HIDE: `hide${EVENT_KEY$a}`, - HIDDEN: `hidden${EVENT_KEY$a}`, - SHOW: `show${EVENT_KEY$a}`, - SHOWN: `shown${EVENT_KEY$a}` +var NAME$a = 'toast'; +var VERSION$a = '4.3.1'; +var DATA_KEY$a = 'bs.toast'; +var EVENT_KEY$a = "." + DATA_KEY$a; +var Event$b = { + CLICK_DISMISS: "click.dismiss" + EVENT_KEY$a, + HIDE: "hide" + EVENT_KEY$a, + HIDDEN: "hidden" + EVENT_KEY$a, + SHOW: "show" + EVENT_KEY$a, + SHOWN: "shown" + EVENT_KEY$a }; -const ClassName$a = { +var ClassName$a = { FADE: 'fade', HIDE: 'hide', SHOW: 'show', SHOWING: 'showing' }; -const DefaultType$7 = { +var DefaultType$7 = { animation: 'boolean', autohide: 'boolean', delay: 'number' }; -const Default$7 = { +var Default$7 = { animation: true, autohide: true, delay: 500 }; -const Selector$a = { +var Selector$a = { DATA_DISMISS: '[data-dismiss="toast"]' /** * ------------------------------------------------------------------------ @@ -4777,8 +5105,10 @@ const Selector$a = { }; -class Toast { - constructor(element, config) { +var Toast = +/*#__PURE__*/ +function () { + function Toast(element, config) { this._element = element; this._config = this._getConfig(config); this._timeout = null; @@ -4789,35 +5119,29 @@ class Toast { } // Getters - static get VERSION() { - return VERSION$a; - } - - static get DefaultType() { - return DefaultType$7; - } - - static get Default() { - return Default$7; - } // Public + var _proto = Toast.prototype; + // Public + _proto.show = function show() { + var _this = this; - show() { EventHandler.trigger(this._element, Event$b.SHOW); if (this._config.animation) { this._element.classList.add(ClassName$a.FADE); } - const complete = () => { - this._element.classList.remove(ClassName$a.SHOWING); + var complete = function complete() { + _this._element.classList.remove(ClassName$a.SHOWING); - this._element.classList.add(ClassName$a.SHOW); + _this._element.classList.add(ClassName$a.SHOW); - EventHandler.trigger(this._element, Event$b.SHOWN); + EventHandler.trigger(_this._element, Event$b.SHOWN); - if (this._config.autohide) { - this.hide(); + if (_this._config.autohide) { + _this._timeout = setTimeout(function () { + _this.hide(); + }, _this._config.delay); } }; @@ -4826,31 +5150,41 @@ class Toast { this._element.classList.add(ClassName$a.SHOWING); if (this._config.animation) { - const transitionDuration = getTransitionDurationFromElement(this._element); + var transitionDuration = getTransitionDurationFromElement(this._element); EventHandler.one(this._element, TRANSITION_END, complete); emulateTransitionEnd(this._element, transitionDuration); } else { complete(); } - } + }; + + _proto.hide = function hide() { + var _this2 = this; - hide(withoutTimeout) { if (!this._element.classList.contains(ClassName$a.SHOW)) { return; } EventHandler.trigger(this._element, Event$b.HIDE); - if (withoutTimeout) { - this._close(); + var complete = function complete() { + _this2._element.classList.add(ClassName$a.HIDE); + + EventHandler.trigger(_this2._element, Event$b.HIDDEN); + }; + + this._element.classList.remove(ClassName$a.SHOW); + + if (this._config.animation) { + var transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, TRANSITION_END, complete); + emulateTransitionEnd(this._element, transitionDuration); } else { - this._timeout = setTimeout(() => { - this._close(); - }, this._config.delay); + complete(); } - } + }; - dispose() { + _proto.dispose = function dispose() { clearTimeout(this._timeout); this._timeout = null; @@ -4863,42 +5197,28 @@ class Toast { this._element = null; this._config = null; } // Private + ; - - _getConfig(config) { - config = _extends({}, Default$7, Manipulator.getDataAttributes(this._element), typeof config === 'object' && config ? config : {}); + _proto._getConfig = function _getConfig(config) { + config = _objectSpread({}, Default$7, Manipulator.getDataAttributes(this._element), typeof config === 'object' && config ? config : {}); typeCheckConfig(NAME$a, config, this.constructor.DefaultType); return config; - } - - _setListeners() { - EventHandler.on(this._element, Event$b.CLICK_DISMISS, Selector$a.DATA_DISMISS, () => this.hide(true)); - } - - _close() { - const complete = () => { - this._element.classList.add(ClassName$a.HIDE); - - EventHandler.trigger(this._element, Event$b.HIDDEN); - }; + }; - this._element.classList.remove(ClassName$a.SHOW); + _proto._setListeners = function _setListeners() { + var _this3 = this; - if (this._config.animation) { - const transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); - emulateTransitionEnd(this._element, transitionDuration); - } else { - complete(); - } + EventHandler.on(this._element, Event$b.CLICK_DISMISS, Selector$a.DATA_DISMISS, function () { + return _this3.hide(); + }); } // Static + ; - - static _jQueryInterface(config) { + Toast._jQueryInterface = function _jQueryInterface(config) { return this.each(function () { - let data = Data.getData(this, DATA_KEY$a); + var data = Data.getData(this, DATA_KEY$a); - const _config = typeof config === 'object' && config; + var _config = typeof config === 'object' && config; if (!data) { data = new Toast(this, _config); @@ -4906,19 +5226,37 @@ class Toast { if (typeof config === 'string') { if (typeof data[config] === 'undefined') { - throw new TypeError(`No method named "${config}"`); + throw new TypeError("No method named \"" + config + "\""); } data[config](this); } }); - } + }; - static _getInstance(element) { + Toast._getInstance = function _getInstance(element) { return Data.getData(element, DATA_KEY$a); - } + }; -} + _createClass(Toast, null, [{ + key: "VERSION", + get: function get() { + return VERSION$a; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType$7; + } + }, { + key: "Default", + get: function get() { + return Default$7; + } + }]); + + return Toast; +}(); /** * ------------------------------------------------------------------------ * jQuery @@ -4928,12 +5266,12 @@ class Toast { if (typeof jQuery !== 'undefined') { - const JQUERY_NO_CONFLICT = jQuery.fn[NAME$a]; + var JQUERY_NO_CONFLICT$a = jQuery.fn[NAME$a]; jQuery.fn[NAME$a] = Toast._jQueryInterface; jQuery.fn[NAME$a].Constructor = Toast; - jQuery.fn[NAME$a].noConflict = () => { - jQuery.fn[NAME$a] = JQUERY_NO_CONFLICT; + jQuery.fn[NAME$a].noConflict = function () { + jQuery.fn[NAME$a] = JQUERY_NO_CONFLICT$a; return Toast._jQueryInterface; }; } diff --git a/dist/js/bootstrap.esm.js.map b/dist/js/bootstrap.esm.js.map index b77bc6461b..3f7a3d0d8e 100644 --- a/dist/js/bootstrap.esm.js.map +++ b/dist/js/bootstrap.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap.esm.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.esm.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n })()\n\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n }\n\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!Polyfill.defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.esm.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","matches","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","NODE_TEXT","SelectorEngine","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","constructor","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast","withoutTimeout","_close"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"bootstrap.esm.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.esm.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n for (const uid of Object.keys(events)) {\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.esm.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast"],"mappings":"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"}
\ No newline at end of file diff --git a/dist/js/bootstrap.esm.min.js b/dist/js/bootstrap.esm.min.js index bb836fd9e9..16a93ca432 100644 --- a/dist/js/bootstrap.esm.min.js +++ b/dist/js/bootstrap.esm.min.js @@ -3,5 +3,5 @@ * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -import Popper from"popper.js";const MAX_UID=1e6,MILLISECONDS_MULTIPLIER=1e3,TRANSITION_END="transitionend",_window=window,jQuery=_window.jQuery,toType=e=>({}).toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),getUID=e=>{do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},getSelectorFromElement=e=>{let t=e.getAttribute("data-target");if(!t||"#"===t){const n=e.getAttribute("href");t=n&&"#"!==n?n.trim():""}try{return document.querySelector(t)?t:null}catch(e){return null}},getTransitionDurationFromElement=e=>{if(!e)return 0;let t=window.getComputedStyle(e),n=t.transitionDuration,i=t.transitionDelay;const s=parseFloat(n),a=parseFloat(i);return s||a?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},triggerTransitionEnd=e=>{e.dispatchEvent(new Event(TRANSITION_END))},isElement=e=>(e[0]||e).nodeType,emulateTransitionEnd=(e,t)=>{let n=!1;const i=t+5;e.addEventListener(TRANSITION_END,function t(){n=!0,e.removeEventListener(TRANSITION_END,t)}),setTimeout(()=>{n||triggerTransitionEnd(e)},i)},typeCheckConfig=(e,t,n)=>{Object.keys(n).forEach(i=>{const s=n[i],a=t[i],o=a&&isElement(a)?"element":toType(a);if(!new RegExp(s).test(o))throw new Error(`${e.toUpperCase()}: `+`Option "${i}" provided type "${o}" `+`but expected type "${s}".`)})},makeArray=e=>e?[].slice.call(e):[],isVisible=e=>!!e&&(!!(e.style&&e.parentNode&&e.parentNode.style)&&("none"!==e.style.display&&"none"!==e.parentNode.style.display&&"hidden"!==e.style.visibility)),findShadowRoot=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?findShadowRoot(e.parentNode):null},noop=()=>(function(){}),reflow=e=>e.offsetHeight,mapData=(()=>{const e={};let t=1;return{set(n,i,s){void 0===n.key&&(n.key={key:i,id:t},t++),e[n.key.id]=s},get(t,n){if(!t||void 0===t.key)return null;const i=t.key;return i.key===n?e[i.id]:null},delete(t,n){if(void 0===t.key)return;const i=t.key;i.key===n&&(delete e[i.id],delete t.key)}}})(),Data={setData(e,t,n){mapData.set(e,t,n)},getData:(e,t)=>mapData.get(e,t),removeData(e,t){mapData.delete(e,t)}},Polyfill=(()=>{const e=(()=>{const e=new CustomEvent("Bootstrap",{cancelable:!0}),t=document.createElement("div");return t.addEventListener("Bootstrap",()=>null),e.preventDefault(),t.dispatchEvent(e),e.defaultPrevented})();let t=Element.prototype.querySelectorAll,n=Element.prototype.querySelector;const i=/:scope\b/;return(()=>{const e=document.createElement("div");try{e.querySelectorAll(":scope *")}catch(e){return!1}return!0})()||(t=function(e){if(!i.test(e))return this.querySelectorAll(e);const t=Boolean(this.id);t||(this.id=getUID("scope"));let n=null;try{e=e.replace(i,`#${this.id}`),n=this.querySelectorAll(e)}finally{t||this.removeAttribute("id")}return n},n=function(e){if(!i.test(e))return this.querySelector(e);const n=t.call(this,e);return void 0!==n[0]?n[0]:null}),{defaultPreventedPreservedOnDispatch:e,find:t,findOne:n}})(),namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,keyEventRegex=/^key/,stripUidRegex=/::\d+$/,eventRegistry={};let uidEvent=1;const customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function getUidEvent(e,t){return t&&`${t}::${uidEvent++}`||e.uidEvent||uidEvent++}function getEvent(e){const t=getUidEvent(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function fixEvent(e,t){null===e.which&&keyEventRegex.test(e.type)&&(e.which=null===e.charCode?e.keyCode:e.charCode),e.delegateTarget=t}function bootstrapHandler(e,t){return function n(i){return fixEvent(i,e),n.oneOff&&EventHandler.off(e,i.type,t),t.apply(e,[i])}}function bootstrapDelegationHandler(e,t,n){return function i(s){const a=e.querySelectorAll(t);for(let t=s.target;t&&t!==this;t=t.parentNode)for(let o=a.length;o--;)if(a[o]===t)return fixEvent(s,t),i.oneOff&&EventHandler.off(e,s.type,n),n.apply(t,[s]);return null}}function findHandler(e,t,n){void 0===n&&(n=null);const i=Object.keys(e);for(let s=0;s<i.length;s++){const a=i[s],o=e[a];if(o.originalHandler===t&&o.delegationSelector===n)return e[a]}return null}function normalizeParams(e,t,n){const i="string"==typeof t,s=i?n:t;let a=e.replace(stripNameRegex,"");const o=customEvents[a];return o&&(a=o),nativeEvents.indexOf(a)>-1||(a=e),[i,s,a]}function addHandler(e,t,n,i,s){if("string"!=typeof t||!e)return;n||(n=i,i=null);const a=normalizeParams(t,n,i),o=a[0],r=a[1],l=a[2],c=getEvent(e),E=c[l]||(c[l]={}),h=findHandler(E,r,o?n:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=getUidEvent(r,t.replace(namespaceRegex,"")),_=o?bootstrapDelegationHandler(e,n,i):bootstrapHandler(e,n);_.delegationSelector=o?n:null,_.originalHandler=r,_.oneOff=s,_.uidEvent=d,E[d]=_,e.addEventListener(l,_,o)}function removeHandler(e,t,n,i,s){const a=findHandler(t[n],i,s);null!==a&&(e.removeEventListener(n,a,Boolean(s)),delete t[n][a.uidEvent])}function removeNamespacedHandlers(e,t,n,i){const s=t[n]||{};Object.keys(s).forEach(a=>{if(a.indexOf(i)>-1){const i=s[a];removeHandler(e,t,n,i.originalHandler,i.delegationSelector)}})}const EventHandler={on(e,t,n,i){addHandler(e,t,n,i,!1)},one(e,t,n,i){addHandler(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const s=normalizeParams(t,n,i),a=s[0],o=s[1],r=s[2],l=r!==t,c=getEvent(e),E="."===t.charAt(0);if(void 0!==o){if(!c||!c[r])return;return void removeHandler(e,c,r,o,a?n:null)}E&&Object.keys(c).forEach(n=>{removeNamespacedHandlers(e,c,n,t.substr(1))});const h=c[r]||{};Object.keys(h).forEach(n=>{const i=n.replace(stripUidRegex,"");if(!l||t.indexOf(i)>-1){const t=h[n];removeHandler(e,c,r,t.originalHandler,t.delegationSelector)}})},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=t.replace(stripNameRegex,""),s=t!==i,a=nativeEvents.indexOf(i)>-1;let o,r=!0,l=!0,c=!1,E=null;return s&&void 0!==jQuery&&(o=jQuery.Event(t,n),jQuery(e).trigger(o),r=!o.isPropagationStopped(),l=!o.isImmediatePropagationStopped(),c=o.isDefaultPrevented()),a?(E=document.createEvent("HTMLEvents")).initEvent(i,r,!0):E=new CustomEvent(t,{bubbles:r,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(e=>{Object.defineProperty(E,e,{get:()=>n[e]})}),c&&(E.preventDefault(),Polyfill.defaultPreventedPreservedOnDispatch||Object.defineProperty(E,"defaultPrevented",{get:()=>!0})),l&&e.dispatchEvent(E),E.defaultPrevented&&void 0!==o&&o.preventDefault(),E}},findFn=Polyfill.find,findOne=Polyfill.findOne,NODE_TEXT=3,SelectorEngine={matches:(e,t)=>e.matches(t),find:(e,t)=>(void 0===t&&(t=document.documentElement),"string"!=typeof e?null:findFn.call(t,e)),findOne:(e,t)=>(void 0===t&&(t=document.documentElement),"string"!=typeof e?null:findOne.call(t,e)),children(e,t){if("string"!=typeof t)return null;return makeArray(e.children).filter(e=>this.matches(e,t))},parents(e,t){if("string"!=typeof t)return null;const n=[];let i=e.parentNode;for(;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,t)&&n.push(i),i=i.parentNode;return n},closest:(e,t)=>"string"!=typeof t?null:e.closest(t),prev(e,t){if("string"!=typeof t)return null;const n=[];let i=e.previousSibling;for(;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,t)&&n.push(i),i=i.previousSibling;return n}},NAME="alert",VERSION="4.3.1",DATA_KEY="bs.alert",EVENT_KEY=`.${DATA_KEY}`,DATA_API_KEY=".data-api",Selector={DISMISS:'[data-dismiss="alert"]'},Event$1={CLOSE:`close${EVENT_KEY}`,CLOSED:`closed${EVENT_KEY}`,CLICK_DATA_API:`click${EVENT_KEY}.data-api`},ClassName={ALERT:"alert",FADE:"fade",SHOW:"show"};class Alert{constructor(e){this._element=e,this._element&&Data.setData(e,DATA_KEY,this)}static get VERSION(){return VERSION}close(e){let t=this._element;e&&(t=this._getRootElement(e));const n=this._triggerCloseEvent(t);null===n||n.defaultPrevented||this._removeElement(t)}dispose(){Data.removeData(this._element,DATA_KEY),this._element=null}_getRootElement(e){const t=getSelectorFromElement(e);let n=!1;return t&&(n=SelectorEngine.findOne(t)),n||(n=SelectorEngine.closest(e,`.${ClassName.ALERT}`)),n}_triggerCloseEvent(e){return EventHandler.trigger(e,Event$1.CLOSE)}_removeElement(e){if(e.classList.remove(ClassName.SHOW),!e.classList.contains(ClassName.FADE))return void this._destroyElement(e);const t=getTransitionDurationFromElement(e);EventHandler.one(e,TRANSITION_END,t=>this._destroyElement(e,t)),emulateTransitionEnd(e,t)}_destroyElement(e){e.parentNode&&e.parentNode.removeChild(e),EventHandler.trigger(e,Event$1.CLOSED)}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY);t||(t=new Alert(this)),"close"===e&&t[e](this)})}static _handleDismiss(e){return function(t){t&&t.preventDefault(),e.close(this)}}static _getInstance(e){return Data.getData(e,DATA_KEY)}}if(EventHandler.on(document,Event$1.CLICK_DATA_API,Selector.DISMISS,Alert._handleDismiss(new Alert)),void 0!==jQuery){const e=jQuery.fn.alert;jQuery.fn.alert=Alert._jQueryInterface,jQuery.fn.alert.Constructor=Alert,jQuery.fn.alert.noConflict=(()=>(jQuery.fn.alert=e,Alert._jQueryInterface))}const NAME$1="button",VERSION$1="4.3.1",DATA_KEY$1="bs.button",EVENT_KEY$1=`.${DATA_KEY$1}`,DATA_API_KEY$1=".data-api",ClassName$1={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},Selector$1={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:'input:not([type="hidden"])',ACTIVE:".active",BUTTON:".btn"},Event$2={CLICK_DATA_API:`click${EVENT_KEY$1}.data-api`,FOCUS_DATA_API:`focus${EVENT_KEY$1}.data-api`,BLUR_DATA_API:`blur${EVENT_KEY$1}.data-api`};class Button{constructor(e){this._element=e,Data.setData(e,DATA_KEY$1,this)}static get VERSION(){return VERSION$1}toggle(){let e=!0,t=!0;const n=SelectorEngine.closest(this._element,Selector$1.DATA_TOGGLE);if(n){const i=SelectorEngine.findOne(Selector$1.INPUT,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(ClassName$1.ACTIVE))e=!1;else{const e=SelectorEngine.findOne(Selector$1.ACTIVE,n);e&&e.classList.remove(ClassName$1.ACTIVE)}if(e){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(ClassName$1.ACTIVE),EventHandler.trigger(i,"change")}i.focus(),t=!1}}t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(ClassName$1.ACTIVE)),e&&this._element.classList.toggle(ClassName$1.ACTIVE)}dispose(){Data.removeData(this._element,DATA_KEY$1),this._element=null}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY$1);t||(t=new Button(this)),"toggle"===e&&t[e]()})}static _getInstance(e){return Data.getData(e,DATA_KEY$1)}}if(EventHandler.on(document,Event$2.CLICK_DATA_API,Selector$1.DATA_TOGGLE_CARROT,e=>{e.preventDefault();let t=e.target;t.classList.contains(ClassName$1.BUTTON)||(t=SelectorEngine.closest(t,Selector$1.BUTTON));let n=Data.getData(t,DATA_KEY$1);n||(n=new Button(t),Data.setData(t,DATA_KEY$1,n)),n.toggle()}),EventHandler.on(document,Event$2.FOCUS_DATA_API,Selector$1.DATA_TOGGLE_CARROT,e=>{SelectorEngine.closest(e.target,Selector$1.BUTTON).classList.add(ClassName$1.FOCUS)}),EventHandler.on(document,Event$2.BLUR_DATA_API,Selector$1.DATA_TOGGLE_CARROT,e=>{SelectorEngine.closest(e.target,Selector$1.BUTTON).classList.remove(ClassName$1.FOCUS)}),void 0!==jQuery){const e=jQuery.fn.button;jQuery.fn.button=Button._jQueryInterface,jQuery.fn.button.Constructor=Button,jQuery.fn.button.noConflict=(()=>(jQuery.fn.button=e,Button._jQueryInterface))}function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}).apply(this,arguments)}function normalizeData(e){return"true"===e||"false"!==e&&(e===Number(e).toString()?Number(e):""===e||"null"===e?null:e)}function normalizeDataKey(e){return e.replace(/[A-Z]/g,e=>e.toLowerCase())}const Manipulator={setDataAttribute(e,t,n){e.setAttribute(`data-${normalizeDataKey(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-${normalizeDataKey(t)}`)},getDataAttributes(e){if(!e)return{};const t=_extends({},e.dataset);return Object.keys(t).forEach(e=>{t[e]=normalizeData(t[e])}),t},getDataAttribute:(e,t)=>normalizeData(e.getAttribute(`data-${normalizeDataKey(t)}`)),offset(e){const t=e.getBoundingClientRect();return{top:t.top+document.body.scrollTop,left:t.left+document.body.scrollLeft}},position:e=>({top:e.offsetTop,left:e.offsetLeft}),toggleClass(e,t){e&&(e.classList.contains(t)?e.classList.remove(t):e.classList.add(t))}},NAME$2="carousel",VERSION$2="4.3.1",DATA_KEY$2="bs.carousel",EVENT_KEY$2=`.${DATA_KEY$2}`,DATA_API_KEY$2=".data-api",ARROW_LEFT_KEYCODE=37,ARROW_RIGHT_KEYCODE=39,TOUCHEVENT_COMPAT_WAIT=500,SWIPE_THRESHOLD=40,Default={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},DefaultType={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Direction={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},Event$3={SLIDE:`slide${EVENT_KEY$2}`,SLID:`slid${EVENT_KEY$2}`,KEYDOWN:`keydown${EVENT_KEY$2}`,MOUSEENTER:`mouseenter${EVENT_KEY$2}`,MOUSELEAVE:`mouseleave${EVENT_KEY$2}`,TOUCHSTART:`touchstart${EVENT_KEY$2}`,TOUCHMOVE:`touchmove${EVENT_KEY$2}`,TOUCHEND:`touchend${EVENT_KEY$2}`,POINTERDOWN:`pointerdown${EVENT_KEY$2}`,POINTERUP:`pointerup${EVENT_KEY$2}`,DRAG_START:`dragstart${EVENT_KEY$2}`,LOAD_DATA_API:`load${EVENT_KEY$2}.data-api`,CLICK_DATA_API:`click${EVENT_KEY$2}.data-api`},ClassName$2={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item",POINTER_EVENT:"pointer-event"},Selector$2={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},PointerType={TOUCH:"touch",PEN:"pen"};class Carousel{constructor(e,t){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(t),this._element=e,this._indicatorsElement=SelectorEngine.findOne(Selector$2.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),Data.setData(e,DATA_KEY$2,this)}static get VERSION(){return VERSION$2}static get Default(){return Default}next(){this._isSliding||this._slide(Direction.NEXT)}nextWhenVisible(){!document.hidden&&isVisible(this._element)&&this.next()}prev(){this._isSliding||this._slide(Direction.PREV)}pause(e){e||(this._isPaused=!0),SelectorEngine.findOne(Selector$2.NEXT_PREV,this._element)&&(triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(e){this._activeElement=SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element);const t=this._getItemIndex(this._activeElement);if(e>this._items.length-1||e<0)return;if(this._isSliding)return void EventHandler.one(this._element,Event$3.SLID,()=>this.to(e));if(t===e)return this.pause(),void this.cycle();const n=e>t?Direction.NEXT:Direction.PREV;this._slide(n,this._items[e])}dispose(){EventHandler.off(this._element,EVENT_KEY$2),Data.removeData(this._element,DATA_KEY$2),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null}_getConfig(e){return e=_extends({},Default,e),typeCheckConfig(NAME$2,e,DefaultType),e}_handleSwipe(){const e=Math.abs(this.touchDeltaX);if(e<=SWIPE_THRESHOLD)return;const t=e/this.touchDeltaX;t>0&&this.prev(),t<0&&this.next()}_addEventListeners(){this._config.keyboard&&EventHandler.on(this._element,Event$3.KEYDOWN,e=>this._keydown(e)),"hover"===this._config.pause&&(EventHandler.on(this._element,Event$3.MOUSEENTER,e=>this.pause(e)),EventHandler.on(this._element,Event$3.MOUSELEAVE,e=>this.cycle(e))),this._config.touch&&this._addTouchEventListeners()}_addTouchEventListeners(){if(!this._touchSupported)return;const e=e=>{this._pointerEvent&&PointerType[e.pointerType.toUpperCase()]?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},t=e=>{e.touches&&e.touches.length>1?this.touchDeltaX=0:this.touchDeltaX=e.touches[0].clientX-this.touchStartX},n=e=>{this._pointerEvent&&PointerType[e.pointerType.toUpperCase()]&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(e=>this.cycle(e),TOUCHEVENT_COMPAT_WAIT+this._config.interval))};makeArray(SelectorEngine.find(Selector$2.ITEM_IMG,this._element)).forEach(e=>{EventHandler.on(e,Event$3.DRAG_START,e=>e.preventDefault())}),this._pointerEvent?(EventHandler.on(this._element,Event$3.POINTERDOWN,t=>e(t)),EventHandler.on(this._element,Event$3.POINTERUP,e=>n(e)),this._element.classList.add(ClassName$2.POINTER_EVENT)):(EventHandler.on(this._element,Event$3.TOUCHSTART,t=>e(t)),EventHandler.on(this._element,Event$3.TOUCHMOVE,e=>t(e)),EventHandler.on(this._element,Event$3.TOUCHEND,e=>n(e)))}_keydown(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case ARROW_LEFT_KEYCODE:e.preventDefault(),this.prev();break;case ARROW_RIGHT_KEYCODE:e.preventDefault(),this.next()}}_getItemIndex(e){return this._items=e&&e.parentNode?makeArray(SelectorEngine.find(Selector$2.ITEM,e.parentNode)):[],this._items.indexOf(e)}_getItemByDirection(e,t){const n=e===Direction.NEXT,i=e===Direction.PREV,s=this._getItemIndex(t),a=this._items.length-1;if((i&&0===s||n&&s===a)&&!this._config.wrap)return t;const o=(s+(e===Direction.PREV?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]}_triggerSlideEvent(e,t){const n=this._getItemIndex(e),i=this._getItemIndex(SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element));return EventHandler.trigger(this._element,Event$3.SLIDE,{relatedTarget:e,direction:t,from:i,to:n})}_setActiveIndicatorElement(e){if(this._indicatorsElement){const t=SelectorEngine.find(Selector$2.ACTIVE,this._indicatorsElement);for(let e=0;e<t.length;e++)t[e].classList.remove(ClassName$2.ACTIVE);const n=this._indicatorsElement.children[this._getItemIndex(e)];n&&n.classList.add(ClassName$2.ACTIVE)}}_slide(e,t){const n=SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element),i=this._getItemIndex(n),s=t||n&&this._getItemByDirection(e,n),a=this._getItemIndex(s),o=Boolean(this._interval);let r,l,c;if(e===Direction.NEXT?(r=ClassName$2.LEFT,l=ClassName$2.NEXT,c=Direction.LEFT):(r=ClassName$2.RIGHT,l=ClassName$2.PREV,c=Direction.RIGHT),s&&s.classList.contains(ClassName$2.ACTIVE))return void(this._isSliding=!1);if(!this._triggerSlideEvent(s,c).defaultPrevented&&n&&s){if(this._isSliding=!0,o&&this.pause(),this._setActiveIndicatorElement(s),this._element.classList.contains(ClassName$2.SLIDE)){s.classList.add(l),reflow(s),n.classList.add(r),s.classList.add(r);const e=parseInt(s.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval;const t=getTransitionDurationFromElement(n);EventHandler.one(n,TRANSITION_END,()=>{s.classList.remove(r),s.classList.remove(l),s.classList.add(ClassName$2.ACTIVE),n.classList.remove(ClassName$2.ACTIVE),n.classList.remove(l),n.classList.remove(r),this._isSliding=!1,setTimeout(()=>{EventHandler.trigger(this._element,Event$3.SLID,{relatedTarget:s,direction:c,from:i,to:a})},0)}),emulateTransitionEnd(n,t)}else n.classList.remove(ClassName$2.ACTIVE),s.classList.add(ClassName$2.ACTIVE),this._isSliding=!1,EventHandler.trigger(this._element,Event$3.SLID,{relatedTarget:s,direction:c,from:i,to:a});o&&this.cycle()}}static _carouselInterface(e,t){let n=Data.getData(e,DATA_KEY$2),i=_extends({},Default,Manipulator.getDataAttributes(e));"object"==typeof t&&(i=_extends({},i,t));const s="string"==typeof t?t:i.slide;if(n||(n=new Carousel(e,i)),"number"==typeof t)n.to(t);else if("string"==typeof s){if(void 0===n[s])throw new TypeError(`No method named "${s}"`);n[s]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}static _jQueryInterface(e){return this.each(function(){Carousel._carouselInterface(this,e)})}static _dataApiClickHandler(e){const t=getSelectorFromElement(this);if(!t)return;const n=SelectorEngine.findOne(t);if(!n||!n.classList.contains(ClassName$2.CAROUSEL))return;const i=_extends({},Manipulator.getDataAttributes(n),Manipulator.getDataAttributes(this)),s=this.getAttribute("data-slide-to");s&&(i.interval=!1),Carousel._carouselInterface(n,i),s&&Data.getData(n,DATA_KEY$2).to(s),e.preventDefault()}static _getInstance(e){return Data.getData(e,DATA_KEY$2)}}if(EventHandler.on(document,Event$3.CLICK_DATA_API,Selector$2.DATA_SLIDE,Carousel._dataApiClickHandler),EventHandler.on(window,Event$3.LOAD_DATA_API,()=>{const e=makeArray(SelectorEngine.find(Selector$2.DATA_RIDE));for(let t=0,n=e.length;t<n;t++)Carousel._carouselInterface(e[t],Data.getData(e[t],DATA_KEY$2))}),void 0!==jQuery){const e=jQuery.fn[NAME$2];jQuery.fn[NAME$2]=Carousel._jQueryInterface,jQuery.fn[NAME$2].Constructor=Carousel,jQuery.fn[NAME$2].noConflict=(()=>(jQuery.fn[NAME$2]=e,Carousel._jQueryInterface))}const NAME$3="collapse",VERSION$3="4.3.1",DATA_KEY$3="bs.collapse",EVENT_KEY$3=`.${DATA_KEY$3}`,DATA_API_KEY$3=".data-api",Default$1={toggle:!0,parent:""},DefaultType$1={toggle:"boolean",parent:"(string|element)"},Event$4={SHOW:`show${EVENT_KEY$3}`,SHOWN:`shown${EVENT_KEY$3}`,HIDE:`hide${EVENT_KEY$3}`,HIDDEN:`hidden${EVENT_KEY$3}`,CLICK_DATA_API:`click${EVENT_KEY$3}.data-api`},ClassName$3={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},Dimension={WIDTH:"width",HEIGHT:"height"},Selector$3={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'};class Collapse{constructor(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=makeArray(SelectorEngine.find(`[data-toggle="collapse"][href="#${e.id}"],`+`[data-toggle="collapse"][data-target="#${e.id}"]`));const n=makeArray(SelectorEngine.find(Selector$3.DATA_TOGGLE));for(let t=0,i=n.length;t<i;t++){const i=n[t],s=getSelectorFromElement(i),a=makeArray(SelectorEngine.find(s)).filter(t=>t===e);null!==s&&a.length&&(this._selector=s,this._triggerArray.push(i))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),Data.setData(e,DATA_KEY$3,this)}static get VERSION(){return VERSION$3}static get Default(){return Default$1}toggle(){this._element.classList.contains(ClassName$3.SHOW)?this.hide():this.show()}show(){if(this._isTransitioning||this._element.classList.contains(ClassName$3.SHOW))return;let e,t;this._parent&&0===(e=makeArray(SelectorEngine.find(Selector$3.ACTIVES,this._parent)).filter(e=>"string"==typeof this._config.parent?e.getAttribute("data-parent")===this._config.parent:e.classList.contains(ClassName$3.COLLAPSE))).length&&(e=null);const n=SelectorEngine.findOne(this._selector);if(e){const i=e.filter(e=>n!==e);if((t=i[0]?Data.getData(i[0],DATA_KEY$3):null)&&t._isTransitioning)return}if(EventHandler.trigger(this._element,Event$4.SHOW).defaultPrevented)return;e&&e.forEach(e=>{n!==e&&Collapse._collapseInterface(e,"hide"),t||Data.setData(e,DATA_KEY$3,null)});const i=this._getDimension();this._element.classList.remove(ClassName$3.COLLAPSE),this._element.classList.add(ClassName$3.COLLAPSING),this._element.style[i]=0,this._triggerArray.length&&this._triggerArray.forEach(e=>{e.classList.remove(ClassName$3.COLLAPSED),e.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);const s=`scroll${i[0].toUpperCase()+i.slice(1)}`,a=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,()=>{this._element.classList.remove(ClassName$3.COLLAPSING),this._element.classList.add(ClassName$3.COLLAPSE),this._element.classList.add(ClassName$3.SHOW),this._element.style[i]="",this.setTransitioning(!1),EventHandler.trigger(this._element,Event$4.SHOWN)}),emulateTransitionEnd(this._element,a),this._element.style[i]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._element.classList.contains(ClassName$3.SHOW))return;if(EventHandler.trigger(this._element,Event$4.HIDE).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,reflow(this._element),this._element.classList.add(ClassName$3.COLLAPSING),this._element.classList.remove(ClassName$3.COLLAPSE),this._element.classList.remove(ClassName$3.SHOW);const t=this._triggerArray.length;if(t>0)for(let e=0;e<t;e++){const t=this._triggerArray[e],n=getSelectorFromElement(t);if(null!==n){SelectorEngine.findOne(n).classList.contains(ClassName$3.SHOW)||(t.classList.add(ClassName$3.COLLAPSED),t.setAttribute("aria-expanded",!1))}}this.setTransitioning(!0);this._element.style[e]="";const n=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,()=>{this.setTransitioning(!1),this._element.classList.remove(ClassName$3.COLLAPSING),this._element.classList.add(ClassName$3.COLLAPSE),EventHandler.trigger(this._element,Event$4.HIDDEN)}),emulateTransitionEnd(this._element,n)}setTransitioning(e){this._isTransitioning=e}dispose(){Data.removeData(this._element,DATA_KEY$3),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}_getConfig(e){return(e=_extends({},Default$1,e)).toggle=Boolean(e.toggle),typeCheckConfig(NAME$3,e,DefaultType$1),e}_getDimension(){return this._element.classList.contains(Dimension.WIDTH)?Dimension.WIDTH:Dimension.HEIGHT}_getParent(){let e=this._config.parent;isElement(e)?void 0===e.jquery&&void 0===e[0]||(e=e[0]):e=SelectorEngine.findOne(e);const t=`[data-toggle="collapse"][data-parent="${e}"]`;return makeArray(SelectorEngine.find(t,e)).forEach(e=>{this._addAriaAndCollapsedClass(Collapse._getTargetFromElement(e),[e])}),e}_addAriaAndCollapsedClass(e,t){if(e){const n=e.classList.contains(ClassName$3.SHOW);t.length&&t.forEach(e=>{n?e.classList.remove(ClassName$3.COLLAPSED):e.classList.add(ClassName$3.COLLAPSED),e.setAttribute("aria-expanded",n)})}}static _getTargetFromElement(e){const t=getSelectorFromElement(e);return t?SelectorEngine.findOne(t):null}static _collapseInterface(e,t){let n=Data.getData(e,DATA_KEY$3);const i=_extends({},Default$1,Manipulator.getDataAttributes(e),"object"==typeof t&&t?t:{});if(!n&&i.toggle&&/show|hide/.test(t)&&(i.toggle=!1),n||(n=new Collapse(e,i)),"string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}static _jQueryInterface(e){return this.each(function(){Collapse._collapseInterface(this,e)})}static _getInstance(e){return Data.getData(e,DATA_KEY$3)}}if(EventHandler.on(document,Event$4.CLICK_DATA_API,Selector$3.DATA_TOGGLE,function(e){"A"===e.target.tagName&&e.preventDefault();const t=Manipulator.getDataAttributes(this),n=getSelectorFromElement(this);makeArray(SelectorEngine.find(n)).forEach(e=>{const n=Data.getData(e,DATA_KEY$3);let i;n?(null===n._parent&&"string"==typeof t.parent&&(n._config.parent=t.parent,n._parent=n._getParent()),i="toggle"):i=t,Collapse._collapseInterface(e,i)})}),void 0!==jQuery){const e=jQuery.fn[NAME$3];jQuery.fn[NAME$3]=Collapse._jQueryInterface,jQuery.fn[NAME$3].Constructor=Collapse,jQuery.fn[NAME$3].noConflict=(()=>(jQuery.fn[NAME$3]=e,Collapse._jQueryInterface))}const NAME$4="dropdown",VERSION$4="4.3.1",DATA_KEY$4="bs.dropdown",EVENT_KEY$4=`.${DATA_KEY$4}`,DATA_API_KEY$4=".data-api",ESCAPE_KEYCODE=27,SPACE_KEYCODE=32,TAB_KEYCODE=9,ARROW_UP_KEYCODE=38,ARROW_DOWN_KEYCODE=40,RIGHT_MOUSE_BUTTON_WHICH=3,REGEXP_KEYDOWN=new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`),Event$5={HIDE:`hide${EVENT_KEY$4}`,HIDDEN:`hidden${EVENT_KEY$4}`,SHOW:`show${EVENT_KEY$4}`,SHOWN:`shown${EVENT_KEY$4}`,CLICK:`click${EVENT_KEY$4}`,CLICK_DATA_API:`click${EVENT_KEY$4}.data-api`,KEYDOWN_DATA_API:`keydown${EVENT_KEY$4}.data-api`,KEYUP_DATA_API:`keyup${EVENT_KEY$4}.data-api`},ClassName$4={DISABLED:"disabled",SHOW:"show",DROPUP:"dropup",DROPRIGHT:"dropright",DROPLEFT:"dropleft",MENURIGHT:"dropdown-menu-right",POSITION_STATIC:"position-static"},Selector$4={DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",MENU:".dropdown-menu",NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"},AttachmentMap={TOP:"top-start",TOPEND:"top-end",BOTTOM:"bottom-start",BOTTOMEND:"bottom-end",RIGHT:"right-start",RIGHTEND:"right-end",LEFT:"left-start",LEFTEND:"left-end"},Default$2={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},DefaultType$2={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"};class Dropdown{constructor(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),Data.setData(e,DATA_KEY$4,this)}static get VERSION(){return VERSION$4}static get Default(){return Default$2}static get DefaultType(){return DefaultType$2}toggle(){if(this._element.disabled||this._element.classList.contains(ClassName$4.DISABLED))return;const e=Dropdown._getParentFromElement(this._element),t=this._menu.classList.contains(ClassName$4.SHOW);if(Dropdown._clearMenus(),t)return;const n={relatedTarget:this._element};if(!EventHandler.trigger(e,Event$5.SHOW,n).defaultPrevented){if(!this._inNavbar){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=e:isElement(this._config.reference)&&(t=this._config.reference,void 0!==this._config.reference.jquery&&(t=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add(ClassName$4.POSITION_STATIC),this._popper=new Popper(t,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!makeArray(SelectorEngine.closest(e,Selector$4.NAVBAR_NAV)).length&&makeArray(document.body.children).forEach(e=>EventHandler.on(e,"mouseover",null,noop())),this._element.focus(),this._element.setAttribute("aria-expanded",!0),Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(e,ClassName$4.SHOW),EventHandler.trigger(e,Event$5.SHOWN,n)}}show(){if(this._element.disabled||this._element.classList.contains(ClassName$4.DISABLED)||this._menu.classList.contains(ClassName$4.SHOW))return;const e=Dropdown._getParentFromElement(this._element),t={relatedTarget:this._element};EventHandler.trigger(e,Event$5.SHOW,t).defaultPrevented||(Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(e,ClassName$4.SHOW),EventHandler.trigger(e,Event$5.SHOWN,t))}hide(){if(this._element.disabled||this._element.classList.contains(ClassName$4.DISABLED)||!this._menu.classList.contains(ClassName$4.SHOW))return;const e=Dropdown._getParentFromElement(this._element),t={relatedTarget:this._element};EventHandler.trigger(e,Event$5.HIDE,t).defaultPrevented||(Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(e,ClassName$4.SHOW),EventHandler.trigger(e,Event$5.HIDDEN,t))}dispose(){Data.removeData(this._element,DATA_KEY$4),EventHandler.off(this._element,EVENT_KEY$4),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)}update(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()}_addEventListeners(){EventHandler.on(this._element,Event$5.CLICK,e=>{e.preventDefault(),e.stopPropagation(),this.toggle()})}_getConfig(e){return e=_extends({},this.constructor.Default,Manipulator.getDataAttributes(this._element),e),typeCheckConfig(NAME$4,e,this.constructor.DefaultType),e}_getMenuElement(){if(!this._menu){const e=Dropdown._getParentFromElement(this._element);e&&(this._menu=SelectorEngine.findOne(Selector$4.MENU,e))}return this._menu}_getPlacement(){const e=this._element.parentNode;let t=AttachmentMap.BOTTOM;return e.classList.contains(ClassName$4.DROPUP)?(t=AttachmentMap.TOP,this._menu.classList.contains(ClassName$4.MENURIGHT)&&(t=AttachmentMap.TOPEND)):e.classList.contains(ClassName$4.DROPRIGHT)?t=AttachmentMap.RIGHT:e.classList.contains(ClassName$4.DROPLEFT)?t=AttachmentMap.LEFT:this._menu.classList.contains(ClassName$4.MENURIGHT)&&(t=AttachmentMap.BOTTOMEND),t}_detectNavbar(){return Boolean(SelectorEngine.closest(this._element,".navbar"))}_getOffset(){const e={};return"function"==typeof this._config.offset?e.fn=(e=>(e.offsets=_extends({},e.offsets,this._config.offset(e.offsets,this._element)||{}),e)):e.offset=this._config.offset,e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),e}static _dropdownInterface(e,t){let n=Data.getData(e,DATA_KEY$4);if(n||(n=new Dropdown(e,"object"==typeof t?t:null)),"string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}static _jQueryInterface(e){return this.each(function(){Dropdown._dropdownInterface(this,e)})}static _clearMenus(e){if(e&&(e.which===RIGHT_MOUSE_BUTTON_WHICH||"keyup"===e.type&&e.which!==TAB_KEYCODE))return;const t=makeArray(SelectorEngine.find(Selector$4.DATA_TOGGLE));for(let n=0,i=t.length;n<i;n++){const i=Dropdown._getParentFromElement(t[n]),s=Data.getData(t[n],DATA_KEY$4),a={relatedTarget:t[n]};if(e&&"click"===e.type&&(a.clickEvent=e),!s)continue;const o=s._menu;i.classList.contains(ClassName$4.SHOW)&&(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&e.which===TAB_KEYCODE)&&i.contains(e.target)||EventHandler.trigger(i,Event$5.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(e=>EventHandler.off(e,"mouseover",null,noop())),t[n].setAttribute("aria-expanded","false"),o.classList.remove(ClassName$4.SHOW),i.classList.remove(ClassName$4.SHOW),EventHandler.trigger(i,Event$5.HIDDEN,a)))}}static _getParentFromElement(e){let t;const n=getSelectorFromElement(e);return n&&(t=SelectorEngine.findOne(n)),t||e.parentNode}static _dataApiKeydownHandler(e){if(/input|textarea/i.test(e.target.tagName)?e.which===SPACE_KEYCODE||e.which!==ESCAPE_KEYCODE&&(e.which!==ARROW_DOWN_KEYCODE&&e.which!==ARROW_UP_KEYCODE||SelectorEngine.closest(e.target,Selector$4.MENU)):!REGEXP_KEYDOWN.test(e.which))return;if(e.preventDefault(),e.stopPropagation(),this.disabled||this.classList.contains(ClassName$4.DISABLED))return;const t=Dropdown._getParentFromElement(this),n=t.classList.contains(ClassName$4.SHOW);if(!n||n&&(e.which===ESCAPE_KEYCODE||e.which===SPACE_KEYCODE))return e.which===ESCAPE_KEYCODE&&EventHandler.trigger(SelectorEngine.findOne(Selector$4.DATA_TOGGLE,t),"focus"),void Dropdown._clearMenus();const i=makeArray(SelectorEngine.find(Selector$4.VISIBLE_ITEMS,t));if(!i.length)return;let s=i.indexOf(e.target);e.which===ARROW_UP_KEYCODE&&s>0&&s--,e.which===ARROW_DOWN_KEYCODE&&s<i.length-1&&s++,s<0&&(s=0),i[s].focus()}static _getInstance(e){return Data.getData(e,DATA_KEY$4)}}if(EventHandler.on(document,Event$5.KEYDOWN_DATA_API,Selector$4.DATA_TOGGLE,Dropdown._dataApiKeydownHandler),EventHandler.on(document,Event$5.KEYDOWN_DATA_API,Selector$4.MENU,Dropdown._dataApiKeydownHandler),EventHandler.on(document,Event$5.CLICK_DATA_API,Dropdown._clearMenus),EventHandler.on(document,Event$5.KEYUP_DATA_API,Dropdown._clearMenus),EventHandler.on(document,Event$5.CLICK_DATA_API,Selector$4.DATA_TOGGLE,function(e){e.preventDefault(),e.stopPropagation(),Dropdown._dropdownInterface(this,"toggle")}),EventHandler.on(document,Event$5.CLICK_DATA_API,Selector$4.FORM_CHILD,e=>e.stopPropagation()),void 0!==jQuery){const e=jQuery.fn[NAME$4];jQuery.fn[NAME$4]=Dropdown._jQueryInterface,jQuery.fn[NAME$4].Constructor=Dropdown,jQuery.fn[NAME$4].noConflict=(()=>(jQuery.fn[NAME$4]=e,Dropdown._jQueryInterface))}const NAME$5="modal",VERSION$5="4.3.1",DATA_KEY$5="bs.modal",EVENT_KEY$5=`.${DATA_KEY$5}`,DATA_API_KEY$5=".data-api",ESCAPE_KEYCODE$1=27,Default$3={backdrop:!0,keyboard:!0,focus:!0,show:!0},DefaultType$3={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Event$6={HIDE:`hide${EVENT_KEY$5}`,HIDDEN:`hidden${EVENT_KEY$5}`,SHOW:`show${EVENT_KEY$5}`,SHOWN:`shown${EVENT_KEY$5}`,FOCUSIN:`focusin${EVENT_KEY$5}`,RESIZE:`resize${EVENT_KEY$5}`,CLICK_DISMISS:`click.dismiss${EVENT_KEY$5}`,KEYDOWN_DISMISS:`keydown.dismiss${EVENT_KEY$5}`,MOUSEUP_DISMISS:`mouseup.dismiss${EVENT_KEY$5}`,MOUSEDOWN_DISMISS:`mousedown.dismiss${EVENT_KEY$5}`,CLICK_DATA_API:`click${EVENT_KEY$5}.data-api`},ClassName$5={SCROLLABLE:"modal-dialog-scrollable",SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},Selector$5={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"};class Modal{constructor(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=SelectorEngine.findOne(Selector$5.DIALOG,e),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,Data.setData(e,DATA_KEY$5,this)}static get VERSION(){return VERSION$5}static get Default(){return Default$3}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){if(this._isShown||this._isTransitioning)return;this._element.classList.contains(ClassName$5.FADE)&&(this._isTransitioning=!0);const t=EventHandler.trigger(this._element,Event$6.SHOW,{relatedTarget:e});this._isShown||t.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.on(this._element,Event$6.CLICK_DISMISS,Selector$5.DATA_DISMISS,e=>this.hide(e)),EventHandler.on(this._dialog,Event$6.MOUSEDOWN_DISMISS,()=>{EventHandler.one(this._element,Event$6.MOUSEUP_DISMISS,e=>{e.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(e)))}hide(e){if(e&&e.preventDefault(),!this._isShown||this._isTransitioning)return;const t=EventHandler.trigger(this._element,Event$6.HIDE);if(!this._isShown||t.defaultPrevented)return;this._isShown=!1;const n=this._element.classList.contains(ClassName$5.FADE);if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.off(document,Event$6.FOCUSIN),this._element.classList.remove(ClassName$5.SHOW),EventHandler.off(this._element,Event$6.CLICK_DISMISS),EventHandler.off(this._dialog,Event$6.MOUSEDOWN_DISMISS),n){const e=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,e=>this._hideModal(e)),emulateTransitionEnd(this._element,e)}else this._hideModal()}dispose(){[window,this._element,this._dialog].forEach(e=>EventHandler.off(e,EVENT_KEY$5)),EventHandler.off(document,Event$6.FOCUSIN),Data.removeData(this._element,DATA_KEY$5),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null}handleUpdate(){this._adjustDialog()}_getConfig(e){return e=_extends({},Default$3,e),typeCheckConfig(NAME$5,e,DefaultType$3),e}_showElement(e){const t=this._element.classList.contains(ClassName$5.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(ClassName$5.SCROLLABLE)?SelectorEngine.findOne(Selector$5.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,t&&reflow(this._element),this._element.classList.add(ClassName$5.SHOW),this._config.focus&&this._enforceFocus();const n=()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,EventHandler.trigger(this._element,Event$6.SHOWN,{relatedTarget:e})};if(t){const e=getTransitionDurationFromElement(this._dialog);EventHandler.one(this._dialog,TRANSITION_END,n),emulateTransitionEnd(this._dialog,e)}else n()}_enforceFocus(){EventHandler.off(document,Event$6.FOCUSIN),EventHandler.on(document,Event$6.FOCUSIN,e=>{document===e.target||this._element===e.target||this._element.contains(e.target)||this._element.focus()})}_setEscapeEvent(){this._isShown&&this._config.keyboard?EventHandler.on(this._element,Event$6.KEYDOWN_DISMISS,e=>{e.which===ESCAPE_KEYCODE$1&&(e.preventDefault(),this.hide())}):this._isShown||EventHandler.off(this._element,Event$6.KEYDOWN_DISMISS)}_setResizeEvent(){this._isShown?EventHandler.on(window,Event$6.RESIZE,e=>this.handleUpdate(e)):EventHandler.off(window,Event$6.RESIZE)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(()=>{document.body.classList.remove(ClassName$5.OPEN),this._resetAdjustments(),this._resetScrollbar(),EventHandler.trigger(this._element,Event$6.HIDDEN)})}_removeBackdrop(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)}_showBackdrop(e){const t=this._element.classList.contains(ClassName$5.FADE)?ClassName$5.FADE:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=ClassName$5.BACKDROP,t&&this._backdrop.classList.add(t),document.body.appendChild(this._backdrop),EventHandler.on(this._element,Event$6.CLICK_DISMISS,e=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===this._config.backdrop?this._element.focus():this.hide())}),t&&reflow(this._backdrop),this._backdrop.classList.add(ClassName$5.SHOW),!e)return;if(!t)return void e();const n=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,e),emulateTransitionEnd(this._backdrop,n)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(ClassName$5.SHOW);const t=()=>{this._removeBackdrop(),e&&e()};if(this._element.classList.contains(ClassName$5.FADE)){const e=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,t),emulateTransitionEnd(this._backdrop,e)}else t()}else e&&e()}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=`${this._scrollbarWidth}px`),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=`${this._scrollbarWidth}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_checkScrollbar(){const e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()}_setScrollbar(){if(this._isBodyOverflowing){makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(e=>{const t=e.style.paddingRight,n=window.getComputedStyle(e)["padding-right"];Manipulator.setDataAttribute(e,"padding-right",t),e.style.paddingRight=`${parseFloat(n)+this._scrollbarWidth}px`}),makeArray(SelectorEngine.find(Selector$5.STICKY_CONTENT)).forEach(e=>{const t=e.style.marginRight,n=window.getComputedStyle(e)["margin-right"];Manipulator.setDataAttribute(e,"margin-right",t),e.style.marginRight=`${parseFloat(n)-this._scrollbarWidth}px`});const e=document.body.style.paddingRight,t=window.getComputedStyle(document.body)["padding-right"];Manipulator.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=`${parseFloat(t)+this._scrollbarWidth}px`}document.body.classList.add(ClassName$5.OPEN)}_resetScrollbar(){makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(e=>{const t=Manipulator.getDataAttribute(e,"padding-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"padding-right"),e.style.paddingRight=t)}),makeArray(SelectorEngine.find(`${Selector$5.STICKY_CONTENT}`)).forEach(e=>{const t=Manipulator.getDataAttribute(e,"margin-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"margin-right"),e.style.marginRight=t)});const e=Manipulator.getDataAttribute(document.body,"padding-right");void 0===e?document.body.style.paddingRight="":(Manipulator.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=e)}_getScrollbarWidth(){const e=document.createElement("div");e.className=ClassName$5.SCROLLBAR_MEASURER,document.body.appendChild(e);const t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t}static _jQueryInterface(e,t){return this.each(function(){let n=Data.getData(this,DATA_KEY$5);const i=_extends({},Default$3,Manipulator.getDataAttributes(this),"object"==typeof e&&e?e:{});if(n||(n=new Modal(this,i)),"string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e](t)}else i.show&&n.show(t)})}static _getInstance(e){return Data.getData(e,DATA_KEY$5)}}if(EventHandler.on(document,Event$6.CLICK_DATA_API,Selector$5.DATA_TOGGLE,function(e){let t;const n=getSelectorFromElement(this);n&&(t=SelectorEngine.findOne(n));const i=Data.getData(t,DATA_KEY$5)?"toggle":_extends({},Manipulator.getDataAttributes(t),Manipulator.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault(),EventHandler.one(t,Event$6.SHOW,e=>{e.defaultPrevented||EventHandler.one(t,Event$6.HIDDEN,()=>{isVisible(this)&&this.focus()})});let s=Data.getData(t,DATA_KEY$5);s||(s=new Modal(t,i)),s.show(this)}),void 0!==jQuery){const e=jQuery.fn[NAME$5];jQuery.fn[NAME$5]=Modal._jQueryInterface,jQuery.fn[NAME$5].Constructor=Modal,jQuery.fn[NAME$5].noConflict=(()=>(jQuery.fn[NAME$5]=e,Modal._jQueryInterface))}const uriAttrs=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,DATA_URL_PATTERN=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,allowedAttribute=(e,t)=>{const n=e.nodeName.toLowerCase();if(-1!==t.indexOf(n))return-1===uriAttrs.indexOf(n)||Boolean(e.nodeValue.match(SAFE_URL_PATTERN)||e.nodeValue.match(DATA_URL_PATTERN));const i=t.filter(e=>e instanceof RegExp);for(let e=0,t=i.length;e<t;e++)if(n.match(i[e]))return!0;return!1},DefaultWhitelist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function sanitizeHtml(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),s=Object.keys(t),a=makeArray(i.body.querySelectorAll("*"));for(let e=0,n=a.length;e<n;e++){const n=a[e],i=n.nodeName.toLowerCase();if(-1===s.indexOf(i)){n.parentNode.removeChild(n);continue}const o=makeArray(n.attributes),r=[].concat(t["*"]||[],t[i]||[]);o.forEach(e=>{allowedAttribute(e,r)||n.removeAttribute(e.nodeName)})}return i.body.innerHTML}const NAME$6="tooltip",VERSION$6="4.3.1",DATA_KEY$6="bs.tooltip",EVENT_KEY$6=`.${DATA_KEY$6}`,CLASS_PREFIX="bs-tooltip",BSCLS_PREFIX_REGEX=new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`,"g"),DISALLOWED_ATTRIBUTES=["sanitize","whiteList","sanitizeFn"],DefaultType$4={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},AttachmentMap$1={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Default$4={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:DefaultWhitelist},HoverState={SHOW:"show",OUT:"out"},Event$7={HIDE:`hide${EVENT_KEY$6}`,HIDDEN:`hidden${EVENT_KEY$6}`,SHOW:`show${EVENT_KEY$6}`,SHOWN:`shown${EVENT_KEY$6}`,INSERTED:`inserted${EVENT_KEY$6}`,CLICK:`click${EVENT_KEY$6}`,FOCUSIN:`focusin${EVENT_KEY$6}`,FOCUSOUT:`focusout${EVENT_KEY$6}`,MOUSEENTER:`mouseenter${EVENT_KEY$6}`,MOUSELEAVE:`mouseleave${EVENT_KEY$6}`},ClassName$6={FADE:"fade",SHOW:"show"},Selector$6={TOOLTIP_INNER:".tooltip-inner",TOOLTIP_ARROW:".tooltip-arrow"},Trigger={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"};class Tooltip{constructor(e,t){if(void 0===Popper)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=e,this.config=this._getConfig(t),this.tip=null,this._setListeners(),Data.setData(e,this.constructor.DATA_KEY,this)}static get VERSION(){return VERSION$6}static get Default(){return Default$4}static get NAME(){return NAME$6}static get DATA_KEY(){return DATA_KEY$6}static get Event(){return Event$7}static get EVENT_KEY(){return EVENT_KEY$6}static get DefaultType(){return DefaultType$4}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(e){if(this._isEnabled)if(e){const t=this.constructor.DATA_KEY;let n=Data.getData(e.delegateTarget,t);n||(n=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(ClassName$6.SHOW))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),Data.removeData(this.element,this.constructor.DATA_KEY),EventHandler.off(this.element,this.constructor.EVENT_KEY),EventHandler.off(SelectorEngine.closest(this.element,".modal"),"hide.bs.modal"),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null}show(){if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){const e=EventHandler.trigger(this.element,this.constructor.Event.SHOW),t=findShadowRoot(this.element),n=null===t?this.element.ownerDocument.documentElement.contains(this.element):t.contains(this.element);if(e.defaultPrevented||!n)return;const i=this.getTipElement(),s=getUID(this.constructor.NAME);i.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&i.classList.add(ClassName$6.FADE);const a="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,o=this._getAttachment(a);this.addAttachmentClass(o);const r=this._getContainer();Data.setData(i,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||r.appendChild(i),EventHandler.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new Popper(this.element,i,{placement:o,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Selector$6.TOOLTIP_ARROW},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:e=>{e.originalPlacement!==e.placement&&this._handlePopperPlacementChange(e)},onUpdate:e=>this._handlePopperPlacementChange(e)}),i.classList.add(ClassName$6.SHOW),"ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(e=>{EventHandler.on(e,"mouseover",noop())});const l=()=>{this.config.animation&&this._fixTransition();const e=this._hoverState;this._hoverState=null,EventHandler.trigger(this.element,this.constructor.Event.SHOWN),e===HoverState.OUT&&this._leave(null,this)};if(this.tip.classList.contains(ClassName$6.FADE)){const e=getTransitionDurationFromElement(this.tip);EventHandler.one(this.tip,TRANSITION_END,l),emulateTransitionEnd(this.tip,e)}else l()}}hide(e){const t=this.getTipElement(),n=()=>{this._hoverState!==HoverState.SHOW&&t.parentNode&&t.parentNode.removeChild(t),this._cleanTipClass(),this.element.removeAttribute("aria-describedby"),EventHandler.trigger(this.element,this.constructor.Event.HIDDEN),null!==this._popper&&this._popper.destroy(),e&&e()};if(!EventHandler.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(t.classList.remove(ClassName$6.SHOW),"ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(e=>EventHandler.off(e,"mouseover",noop)),this._activeTrigger[Trigger.CLICK]=!1,this._activeTrigger[Trigger.FOCUS]=!1,this._activeTrigger[Trigger.HOVER]=!1,this.tip.classList.contains(ClassName$6.FADE)){const e=getTransitionDurationFromElement(t);EventHandler.one(t,TRANSITION_END,n),emulateTransitionEnd(t,e)}else n();this._hoverState=""}}update(){null!==this._popper&&this._popper.scheduleUpdate()}isWithContent(){return Boolean(this.getTitle())}addAttachmentClass(e){this.getTipElement().classList.add(`${CLASS_PREFIX}-${e}`)}getTipElement(){if(this.tip)return this.tip;const e=document.createElement("div");return e.innerHTML=this.config.template,this.tip=e.children[0],this.tip}setContent(){const e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(Selector$6.TOOLTIP_INNER,e),this.getTitle()),e.classList.remove(ClassName$6.FADE),e.classList.remove(ClassName$6.SHOW)}setElementContent(e,t){if(null!==e)return"object"==typeof t&&(t.nodeType||t.jquery)?(t.jquery&&(t=t[0]),void(this.config.html?t.parentNode!==e&&(e.innerHTML="",e.appendChild(t)):e.innerText=t.textContent)):void(this.config.html?(this.config.sanitize&&(t=sanitizeHtml(t,this.config.whiteList,this.config.sanitizeFn)),e.innerHTML=t):e.innerText=t)}getTitle(){let e=this.element.getAttribute("data-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e}_getOffset(){const e={};return"function"==typeof this.config.offset?e.fn=(e=>(e.offsets=_extends({},e.offsets,this.config.offset(e.offsets,this.element)||{}),e)):e.offset=this.config.offset,e}_getContainer(){return!1===this.config.container?document.body:isElement(this.config.container)?this.config.container:SelectorEngine.findOne(this.config.container)}_getAttachment(e){return AttachmentMap$1[e.toUpperCase()]}_setListeners(){this.config.trigger.split(" ").forEach(e=>{if("click"===e)EventHandler.on(this.element,this.constructor.Event.CLICK,this.config.selector,e=>this.toggle(e));else if(e!==Trigger.MANUAL){const t=e===Trigger.HOVER?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,n=e===Trigger.HOVER?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;EventHandler.on(this.element,t,this.config.selector,e=>this._enter(e)),EventHandler.on(this.element,n,this.config.selector,e=>this._leave(e))}}),EventHandler.on(SelectorEngine.closest(this.element,".modal"),"hide.bs.modal",()=>{this.element&&this.hide()}),this.config.selector?this.config=_extends({},this.config,{trigger:"manual",selector:""}):this._fixTitle()}_fixTitle(){const e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))}_enter(e,t){const n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusin"===e.type?Trigger.FOCUS:Trigger.HOVER]=!0),t.getTipElement().classList.contains(ClassName$6.SHOW)||t._hoverState===HoverState.SHOW?t._hoverState=HoverState.SHOW:(clearTimeout(t._timeout),t._hoverState=HoverState.SHOW,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(()=>{t._hoverState===HoverState.SHOW&&t.show()},t.config.delay.show):t.show())}_leave(e,t){const n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusout"===e.type?Trigger.FOCUS:Trigger.HOVER]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=HoverState.OUT,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(()=>{t._hoverState===HoverState.OUT&&t.hide()},t.config.delay.hide):t.hide())}_isWithActiveTrigger(){for(const e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1}_getConfig(e){const t=Manipulator.getDataAttributes(this.element);return Object.keys(t).forEach(e=>{-1!==DISALLOWED_ATTRIBUTES.indexOf(e)&&delete t[e]}),e&&"object"==typeof e.container&&e.container.jquery&&(e.container=e.container[0]),"number"==typeof(e=_extends({},this.constructor.Default,t,"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),typeCheckConfig(NAME$6,e,this.constructor.DefaultType),e.sanitize&&(e.template=sanitizeHtml(e.template,e.whiteList,e.sanitizeFn)),e}_getDelegateConfig(){const e={};if(this.config)for(const t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e}_cleanTipClass(){const e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX);null!==t&&t.length&&t.map(e=>e.trim()).forEach(t=>e.classList.remove(t))}_handlePopperPlacementChange(e){const t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))}_fixTransition(){const e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(e.classList.remove(ClassName$6.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY$6);const n="object"==typeof e&&e;if((t||!/dispose|hide/.test(e))&&(t||(t=new Tooltip(this,n)),"string"==typeof e)){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static _getInstance(e){return Data.getData(e,DATA_KEY$6)}}if(void 0!==jQuery){const e=jQuery.fn[NAME$6];jQuery.fn[NAME$6]=Tooltip._jQueryInterface,jQuery.fn[NAME$6].Constructor=Tooltip,jQuery.fn[NAME$6].noConflict=(()=>(jQuery.fn[NAME$6]=e,Tooltip._jQueryInterface))}const NAME$7="popover",VERSION$7="4.3.1",DATA_KEY$7="bs.popover",EVENT_KEY$7=`.${DATA_KEY$7}`,CLASS_PREFIX$1="bs-popover",BSCLS_PREFIX_REGEX$1=new RegExp(`(^|\\s)${CLASS_PREFIX$1}\\S+`,"g"),Default$5=_extends({},Tooltip.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),DefaultType$5=_extends({},Tooltip.DefaultType,{content:"(string|element|function)"}),ClassName$7={FADE:"fade",SHOW:"show"},Selector$7={TITLE:".popover-header",CONTENT:".popover-body"},Event$8={HIDE:`hide${EVENT_KEY$7}`,HIDDEN:`hidden${EVENT_KEY$7}`,SHOW:`show${EVENT_KEY$7}`,SHOWN:`shown${EVENT_KEY$7}`,INSERTED:`inserted${EVENT_KEY$7}`,CLICK:`click${EVENT_KEY$7}`,FOCUSIN:`focusin${EVENT_KEY$7}`,FOCUSOUT:`focusout${EVENT_KEY$7}`,MOUSEENTER:`mouseenter${EVENT_KEY$7}`,MOUSELEAVE:`mouseleave${EVENT_KEY$7}`};class Popover extends Tooltip{static get VERSION(){return VERSION$7}static get Default(){return Default$5}static get NAME(){return NAME$7}static get DATA_KEY(){return DATA_KEY$7}static get Event(){return Event$8}static get EVENT_KEY(){return EVENT_KEY$7}static get DefaultType(){return DefaultType$5}isWithContent(){return this.getTitle()||this._getContent()}addAttachmentClass(e){this.getTipElement().classList.add(`${CLASS_PREFIX$1}-${e}`)}setContent(){const e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(Selector$7.TITLE,e),this.getTitle());let t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(SelectorEngine.findOne(Selector$7.CONTENT,e),t),e.classList.remove(ClassName$7.FADE),e.classList.remove(ClassName$7.SHOW)}_getContent(){return this.element.getAttribute("data-content")||this.config.content}_cleanTipClass(){const e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX$1);null!==t&&t.length>0&&t.map(e=>e.trim()).forEach(t=>e.classList.remove(t))}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY$7);const n="object"==typeof e?e:null;if((t||!/dispose|hide/.test(e))&&(t||(t=new Popover(this,n),Data.setData(this,DATA_KEY$7,t)),"string"==typeof e)){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static _getInstance(e){return Data.getData(e,DATA_KEY$7)}}if(void 0!==jQuery){const e=jQuery.fn[NAME$7];jQuery.fn[NAME$7]=Popover._jQueryInterface,jQuery.fn[NAME$7].Constructor=Popover,jQuery.fn[NAME$7].noConflict=(()=>(jQuery.fn[NAME$7]=e,Popover._jQueryInterface))}const NAME$8="scrollspy",VERSION$8="4.3.1",DATA_KEY$8="bs.scrollspy",EVENT_KEY$8=`.${DATA_KEY$8}`,DATA_API_KEY$6=".data-api",Default$6={offset:10,method:"auto",target:""},DefaultType$6={offset:"number",method:"string",target:"(string|element)"},Event$9={ACTIVATE:`activate${EVENT_KEY$8}`,SCROLL:`scroll${EVENT_KEY$8}`,LOAD_DATA_API:`load${EVENT_KEY$8}.data-api`},ClassName$8={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},Selector$8={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},OffsetMethod={OFFSET:"offset",POSITION:"position"};class ScrollSpy{constructor(e,t){this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=`${this._config.target} ${Selector$8.NAV_LINKS},`+`${this._config.target} ${Selector$8.LIST_ITEMS},`+`${this._config.target} .${ClassName$8.DROPDOWN_ITEM}`,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,EventHandler.on(this._scrollElement,Event$9.SCROLL,e=>this._process(e)),this.refresh(),this._process(),Data.setData(e,DATA_KEY$8,this)}static get VERSION(){return VERSION$8}static get Default(){return Default$6}refresh(){const e=this._scrollElement===this._scrollElement.window?OffsetMethod.OFFSET:OffsetMethod.POSITION,t="auto"===this._config.method?e:this._config.method,n=t===OffsetMethod.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),makeArray(SelectorEngine.find(this._selector)).map(e=>{let i;const s=getSelectorFromElement(e);if(s&&(i=SelectorEngine.findOne(s)),i){const e=i.getBoundingClientRect();if(e.width||e.height)return[Manipulator[t](i).top+n,s]}return null}).filter(e=>e).sort((e,t)=>e[0]-t[0]).forEach(e=>{this._offsets.push(e[0]),this._targets.push(e[1])})}dispose(){Data.removeData(this._element,DATA_KEY$8),EventHandler.off(this._scrollElement,EVENT_KEY$8),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null}_getConfig(e){if("string"!=typeof(e=_extends({},Default$6,"object"==typeof e&&e?e:{})).target){let t=e.target.id;t||(t=getUID(NAME$8),e.target.id=t),e.target=`#${t}`}return typeCheckConfig(NAME$8,e,DefaultType$6),e}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){const e=this._targets[this._targets.length-1];this._activeTarget!==e&&this._activate(e)}else{if(this._activeTarget&&e<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(let t=this._offsets.length;t--;){this._activeTarget!==this._targets[t]&&e>=this._offsets[t]&&(void 0===this._offsets[t+1]||e<this._offsets[t+1])&&this._activate(this._targets[t])}}}_activate(e){this._activeTarget=e,this._clear();const t=this._selector.split(",").map(t=>`${t}[data-target="${e}"],${t}[href="${e}"]`),n=SelectorEngine.findOne(t.join(","));n.classList.contains(ClassName$8.DROPDOWN_ITEM)?(SelectorEngine.findOne(Selector$8.DROPDOWN_TOGGLE,SelectorEngine.closest(n,Selector$8.DROPDOWN)).classList.add(ClassName$8.ACTIVE),n.classList.add(ClassName$8.ACTIVE)):(n.classList.add(ClassName$8.ACTIVE),SelectorEngine.parents(n,Selector$8.NAV_LIST_GROUP).forEach(e=>{SelectorEngine.prev(e,`${Selector$8.NAV_LINKS}, ${Selector$8.LIST_ITEMS}`).forEach(e=>e.classList.add(ClassName$8.ACTIVE)),SelectorEngine.prev(e,Selector$8.NAV_ITEMS).forEach(e=>{SelectorEngine.children(e,Selector$8.NAV_LINKS).forEach(e=>e.classList.add(ClassName$8.ACTIVE))})})),EventHandler.trigger(this._scrollElement,Event$9.ACTIVATE,{relatedTarget:e})}_clear(){makeArray(SelectorEngine.find(this._selector)).filter(e=>e.classList.contains(ClassName$8.ACTIVE)).forEach(e=>e.classList.remove(ClassName$8.ACTIVE))}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY$8);if(t||(t=new ScrollSpy(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static _getInstance(e){return Data.getData(e,DATA_KEY$8)}}if(EventHandler.on(window,Event$9.LOAD_DATA_API,()=>{makeArray(SelectorEngine.find(Selector$8.DATA_SPY)).forEach(e=>new ScrollSpy(e,Manipulator.getDataAttributes(e)))}),void 0!==jQuery){const e=jQuery.fn[NAME$8];jQuery.fn[NAME$8]=ScrollSpy._jQueryInterface,jQuery.fn[NAME$8].Constructor=ScrollSpy,jQuery.fn[NAME$8].noConflict=(()=>(jQuery.fn[NAME$8]=e,ScrollSpy._jQueryInterface))}const NAME$9="tab",VERSION$9="4.3.1",DATA_KEY$9="bs.tab",EVENT_KEY$9=`.${DATA_KEY$9}`,DATA_API_KEY$7=".data-api",Event$a={HIDE:`hide${EVENT_KEY$9}`,HIDDEN:`hidden${EVENT_KEY$9}`,SHOW:`show${EVENT_KEY$9}`,SHOWN:`shown${EVENT_KEY$9}`,CLICK_DATA_API:`click${EVENT_KEY$9}.data-api`},ClassName$9={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",DISABLED:"disabled",FADE:"fade",SHOW:"show"},Selector$9={DROPDOWN:".dropdown",NAV_LIST_GROUP:".nav, .list-group",ACTIVE:".active",ACTIVE_UL:":scope > li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:":scope > .dropdown-menu .active"};class Tab{constructor(e){this._element=e,Data.setData(this._element,DATA_KEY$9,this)}static get VERSION(){return VERSION$9}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(ClassName$9.ACTIVE)||this._element.classList.contains(ClassName$9.DISABLED))return;let e,t;const n=SelectorEngine.closest(this._element,Selector$9.NAV_LIST_GROUP),i=getSelectorFromElement(this._element);if(n){const e="UL"===n.nodeName||"OL"===n.nodeName?Selector$9.ACTIVE_UL:Selector$9.ACTIVE;t=(t=makeArray(SelectorEngine.find(e,n)))[t.length-1]}let s=null;if(t&&(s=EventHandler.trigger(t,Event$a.HIDE,{relatedTarget:this._element})),EventHandler.trigger(this._element,Event$a.SHOW,{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;i&&(e=SelectorEngine.findOne(i)),this._activate(this._element,n);const a=()=>{EventHandler.trigger(t,Event$a.HIDDEN,{relatedTarget:this._element}),EventHandler.trigger(this._element,Event$a.SHOWN,{relatedTarget:t})};e?this._activate(e,e.parentNode,a):a()}dispose(){Data.removeData(this._element,DATA_KEY$9),this._element=null}_activate(e,t,n){const i=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?SelectorEngine.children(t,Selector$9.ACTIVE):SelectorEngine.find(Selector$9.ACTIVE_UL,t))[0],s=n&&i&&i.classList.contains(ClassName$9.FADE),a=()=>this._transitionComplete(e,i,n);if(i&&s){const e=getTransitionDurationFromElement(i);i.classList.remove(ClassName$9.SHOW),EventHandler.one(i,TRANSITION_END,a),emulateTransitionEnd(i,e)}else a()}_transitionComplete(e,t,n){if(t){t.classList.remove(ClassName$9.ACTIVE);const e=SelectorEngine.findOne(Selector$9.DROPDOWN_ACTIVE_CHILD,t.parentNode);e&&e.classList.remove(ClassName$9.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}if(e.classList.add(ClassName$9.ACTIVE),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),reflow(e),e.classList.contains(ClassName$9.FADE)&&e.classList.add(ClassName$9.SHOW),e.parentNode&&e.parentNode.classList.contains(ClassName$9.DROPDOWN_MENU)){SelectorEngine.closest(e,Selector$9.DROPDOWN)&&makeArray(SelectorEngine.find(Selector$9.DROPDOWN_TOGGLE)).forEach(e=>e.classList.add(ClassName$9.ACTIVE)),e.setAttribute("aria-expanded",!0)}n&&n()}static _jQueryInterface(e){return this.each(function(){const t=Data.getData(this,DATA_KEY$9)||new Tab(this);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static _getInstance(e){return Data.getData(e,DATA_KEY$9)}}if(EventHandler.on(document,Event$a.CLICK_DATA_API,Selector$9.DATA_TOGGLE,function(e){e.preventDefault(),(Data.getData(this,DATA_KEY$9)||new Tab(this)).show()}),void 0!==jQuery){const e=jQuery.fn.tab;jQuery.fn.tab=Tab._jQueryInterface,jQuery.fn.tab.Constructor=Tab,jQuery.fn.tab.noConflict=(()=>(jQuery.fn.tab=e,Tab._jQueryInterface))}const NAME$a="toast",VERSION$a="4.3.1",DATA_KEY$a="bs.toast",EVENT_KEY$a=`.${DATA_KEY$a}`,Event$b={CLICK_DISMISS:`click.dismiss${EVENT_KEY$a}`,HIDE:`hide${EVENT_KEY$a}`,HIDDEN:`hidden${EVENT_KEY$a}`,SHOW:`show${EVENT_KEY$a}`,SHOWN:`shown${EVENT_KEY$a}`},ClassName$a={FADE:"fade",HIDE:"hide",SHOW:"show",SHOWING:"showing"},DefaultType$7={animation:"boolean",autohide:"boolean",delay:"number"},Default$7={animation:!0,autohide:!0,delay:500},Selector$a={DATA_DISMISS:'[data-dismiss="toast"]'};class Toast{constructor(e,t){this._element=e,this._config=this._getConfig(t),this._timeout=null,this._setListeners(),Data.setData(e,DATA_KEY$a,this)}static get VERSION(){return VERSION$a}static get DefaultType(){return DefaultType$7}static get Default(){return Default$7}show(){EventHandler.trigger(this._element,Event$b.SHOW),this._config.animation&&this._element.classList.add(ClassName$a.FADE);const e=()=>{this._element.classList.remove(ClassName$a.SHOWING),this._element.classList.add(ClassName$a.SHOW),EventHandler.trigger(this._element,Event$b.SHOWN),this._config.autohide&&this.hide()};if(this._element.classList.remove(ClassName$a.HIDE),this._element.classList.add(ClassName$a.SHOWING),this._config.animation){const t=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,e),emulateTransitionEnd(this._element,t)}else e()}hide(e){this._element.classList.contains(ClassName$a.SHOW)&&(EventHandler.trigger(this._element,Event$b.HIDE),e?this._close():this._timeout=setTimeout(()=>{this._close()},this._config.delay))}dispose(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(ClassName$a.SHOW)&&this._element.classList.remove(ClassName$a.SHOW),EventHandler.off(this._element,Event$b.CLICK_DISMISS),Data.removeData(this._element,DATA_KEY$a),this._element=null,this._config=null}_getConfig(e){return e=_extends({},Default$7,Manipulator.getDataAttributes(this._element),"object"==typeof e&&e?e:{}),typeCheckConfig(NAME$a,e,this.constructor.DefaultType),e}_setListeners(){EventHandler.on(this._element,Event$b.CLICK_DISMISS,Selector$a.DATA_DISMISS,()=>this.hide(!0))}_close(){const e=()=>{this._element.classList.add(ClassName$a.HIDE),EventHandler.trigger(this._element,Event$b.HIDDEN)};if(this._element.classList.remove(ClassName$a.SHOW),this._config.animation){const t=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,e),emulateTransitionEnd(this._element,t)}else e()}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY$a);if(t||(t=new Toast(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}})}static _getInstance(e){return Data.getData(e,DATA_KEY$a)}}if(void 0!==jQuery){const e=jQuery.fn[NAME$a];jQuery.fn[NAME$a]=Toast._jQueryInterface,jQuery.fn[NAME$a].Constructor=Toast,jQuery.fn[NAME$a].noConflict=(()=>(jQuery.fn[NAME$a]=e,Toast._jQueryInterface))}export{Alert,Button,Carousel,Collapse,Dropdown,Modal,Popover,ScrollSpy,Tab,Toast,Tooltip}; +import Popper from"popper.js";function _defineProperties(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){_defineProperty(e,t,n[t])})}return e}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var MAX_UID=1e6,MILLISECONDS_MULTIPLIER=1e3,TRANSITION_END="transitionend",_window=window,jQuery=_window.jQuery,toType=function(e){return{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase()},getUID=function(e){do{e+=~~(Math.random()*MAX_UID)}while(document.getElementById(e));return e},getSelectorFromElement=function(e){var t=e.getAttribute("data-target");if(!t||"#"===t){var n=e.getAttribute("href");t=n&&"#"!==n?n.trim():""}try{return document.querySelector(t)?t:null}catch(e){return null}},getTransitionDurationFromElement=function(e){if(!e)return 0;var t=window.getComputedStyle(e),n=t.transitionDuration,i=t.transitionDelay,r=parseFloat(n),a=parseFloat(i);return r||a?(n=n.split(",")[0],i=i.split(",")[0],(parseFloat(n)+parseFloat(i))*MILLISECONDS_MULTIPLIER):0},triggerTransitionEnd=function(e){var t=document.createEvent("HTMLEvents");t.initEvent(TRANSITION_END,!0,!0),e.dispatchEvent(t)},isElement=function(e){return(e[0]||e).nodeType},emulateTransitionEnd=function(e,t){var n=!1,i=t+5;e.addEventListener(TRANSITION_END,function t(){n=!0,e.removeEventListener(TRANSITION_END,t)}),setTimeout(function(){n||triggerTransitionEnd(e)},i)},typeCheckConfig=function(e,t,n){Object.keys(n).forEach(function(i){var r=n[i],a=t[i],o=a&&isElement(a)?"element":toType(a);if(!new RegExp(r).test(o))throw new Error(e.toUpperCase()+': Option "'+i+'" provided type "'+o+'" but expected type "'+r+'".')})},makeArray=function(e){return e?[].slice.call(e):[]},isVisible=function(e){return!!e&&(!!(e.style&&e.parentNode&&e.parentNode.style)&&("none"!==e.style.display&&"none"!==e.parentNode.style.display&&"hidden"!==e.style.visibility))},findShadowRoot=function e(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var n=t.getRootNode();return n instanceof ShadowRoot?n:null}return t instanceof ShadowRoot?t:t.parentNode?e(t.parentNode):null},noop=function(){return function(){}},reflow=function(e){return e.offsetHeight},mapData=function(){var e={},t=1;return{set:function(n,i,r){void 0===n.key&&(n.key={key:i,id:t},t++),e[n.key.id]=r},get:function(t,n){if(!t||void 0===t.key)return null;var i=t.key;return i.key===n?e[i.id]:null},delete:function(t,n){if(void 0!==t.key){var i=t.key;i.key===n&&(delete e[i.id],delete t.key)}}}}(),Data={setData:function(e,t,n){mapData.set(e,t,n)},getData:function(e,t){return mapData.get(e,t)},removeData:function(e,t){mapData.delete(e,t)}},_Element$prototype=Element.prototype,matches=_Element$prototype.matches,closest=_Element$prototype.closest,find=Element.prototype.querySelectorAll,findOne=Element.prototype.querySelector,createCustomEvent=function(e,t){return new CustomEvent(e,t)};"function"!=typeof window.CustomEvent&&(createCustomEvent=function(e,t){t=t||{bubbles:!1,cancelable:!1,detail:null};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n});var workingDefaultPrevented=function(){var e=document.createEvent("CustomEvent");return e.initEvent("Bootstrap",!0,!0),e.preventDefault(),e.defaultPrevented}();if(!workingDefaultPrevented){var origPreventDefault=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(origPreventDefault.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var defaultPreventedPreservedOnDispatch=function(){var e=createCustomEvent("Bootstrap",{cancelable:!0}),t=document.createElement("div");return t.addEventListener("Bootstrap",function(){return null}),e.preventDefault(),t.dispatchEvent(e),e.defaultPrevented}();matches||(matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),closest||(closest=function(e){var t=this;do{if(matches.call(t,e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null});var scopeSelectorRegex=/:scope\b/,supportScopeQuery=function(){var e=document.createElement("div");try{e.querySelectorAll(":scope *")}catch(e){return!1}return!0}();supportScopeQuery||(find=function(e){if(!scopeSelectorRegex.test(e))return this.querySelectorAll(e);var t=Boolean(this.id);t||(this.id=getUID("scope"));var n=null;try{e=e.replace(scopeSelectorRegex,"#"+this.id),n=this.querySelectorAll(e)}finally{t||this.removeAttribute("id")}return n},findOne=function(e){if(!scopeSelectorRegex.test(e))return this.querySelector(e);var t=find.call(this,e);return void 0!==t[0]?t[0]:null});var namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,keyEventRegex=/^key/,stripUidRegex=/::\d+$/,eventRegistry={},uidEvent=1,customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function getUidEvent(e,t){return t&&t+"::"+uidEvent++||e.uidEvent||uidEvent++}function getEvent(e){var t=getUidEvent(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function fixEvent(e,t){null===e.which&&keyEventRegex.test(e.type)&&(e.which=null===e.charCode?e.keyCode:e.charCode),e.delegateTarget=t}function bootstrapHandler(e,t){return function n(i){return fixEvent(i,e),n.oneOff&&EventHandler.off(e,i.type,t),t.apply(e,[i])}}function bootstrapDelegationHandler(e,t,n){return function i(r){for(var a=e.querySelectorAll(t),o=r.target;o&&o!==this;o=o.parentNode)for(var s=a.length;s--;)if(a[s]===o)return fixEvent(r,o),i.oneOff&&EventHandler.off(e,r.type,n),n.apply(o,[r]);return null}}function findHandler(e,t,n){void 0===n&&(n=null);for(var i=0,r=Object.keys(e);i<r.length;i++){var a=r[i],o=e[a];if(o.originalHandler===t&&o.delegationSelector===n)return e[a]}return null}function normalizeParams(e,t,n){var i="string"==typeof t,r=i?n:t,a=e.replace(stripNameRegex,""),o=customEvents[a];return o&&(a=o),nativeEvents.indexOf(a)>-1||(a=e),[i,r,a]}function addHandler(e,t,n,i,r){if("string"==typeof t&&e){n||(n=i,i=null);var a=normalizeParams(t,n,i),o=a[0],s=a[1],l=a[2],c=getEvent(e),u=c[l]||(c[l]={}),E=findHandler(u,s,o?n:null);if(E)E.oneOff=E.oneOff&&r;else{var f=getUidEvent(s,t.replace(namespaceRegex,"")),d=o?bootstrapDelegationHandler(e,n,i):bootstrapHandler(e,n);d.delegationSelector=o?n:null,d.originalHandler=s,d.oneOff=r,d.uidEvent=f,u[f]=d,e.addEventListener(l,d,o)}}}function removeHandler(e,t,n,i,r){var a=findHandler(t[n],i,r);null!==a&&(e.removeEventListener(n,a,Boolean(r)),delete t[n][a.uidEvent])}function removeNamespacedHandlers(e,t,n,i){var r=t[n]||{};Object.keys(r).forEach(function(a){if(a.indexOf(i)>-1){var o=r[a];removeHandler(e,t,n,o.originalHandler,o.delegationSelector)}})}var EventHandler={on:function(e,t,n,i){addHandler(e,t,n,i,!1)},one:function(e,t,n,i){addHandler(e,t,n,i,!0)},off:function(e,t,n,i){if("string"==typeof t&&e){var r=normalizeParams(t,n,i),a=r[0],o=r[1],s=r[2],l=s!==t,c=getEvent(e),u="."===t.charAt(0);if(void 0===o){u&&Object.keys(c).forEach(function(n){removeNamespacedHandlers(e,c,n,t.substr(1))});var E=c[s]||{};Object.keys(E).forEach(function(n){var i=n.replace(stripUidRegex,"");if(!l||t.indexOf(i)>-1){var r=E[n];removeHandler(e,c,s,r.originalHandler,r.delegationSelector)}})}else{if(!c||!c[s])return;removeHandler(e,c,s,o,a?n:null)}}},trigger:function(e,t,n){if("string"!=typeof t||!e)return null;var i,r=t.replace(stripNameRegex,""),a=t!==r,o=nativeEvents.indexOf(r)>-1,s=!0,l=!0,c=!1,u=null;return a&&void 0!==jQuery&&(i=jQuery.Event(t,n),jQuery(e).trigger(i),s=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),c=i.isDefaultPrevented()),o?(u=document.createEvent("HTMLEvents")).initEvent(r,s,!0):u=createCustomEvent(t,{bubbles:s,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(function(e){Object.defineProperty(u,e,{get:function(){return n[e]}})}),c&&(u.preventDefault(),defaultPreventedPreservedOnDispatch||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&e.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},NODE_TEXT=3,SelectorEngine={matches:function(e,t){return matches.call(e,t)},find:function(e,t){return void 0===t&&(t=document.documentElement),"string"!=typeof e?null:find.call(t,e)},findOne:function(e,t){return void 0===t&&(t=document.documentElement),"string"!=typeof e?null:findOne.call(t,e)},children:function(e,t){var n=this;if("string"!=typeof t)return null;var i=makeArray(e.children);return i.filter(function(e){return n.matches(e,t)})},parents:function(e,t){if("string"!=typeof t)return null;for(var n=[],i=e.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&i.nodeType!==NODE_TEXT;)this.matches(i,t)&&n.push(i),i=i.parentNode;return n},closest:function(e,t){return"string"!=typeof t?null:closest.call(e,t)},prev:function(e,t){if("string"!=typeof t)return null;for(var n=[],i=e.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&i.nodeType!==NODE_TEXT;)this.matches(i,t)&&n.push(i),i=i.previousSibling;return n}},NAME="alert",VERSION="4.3.1",DATA_KEY="bs.alert",EVENT_KEY="."+DATA_KEY,DATA_API_KEY=".data-api",Selector={DISMISS:'[data-dismiss="alert"]'},Event$1={CLOSE:"close"+EVENT_KEY,CLOSED:"closed"+EVENT_KEY,CLICK_DATA_API:"click"+EVENT_KEY+DATA_API_KEY},ClassName={ALERT:"alert",FADE:"fade",SHOW:"show"},Alert=function(){function e(e){this._element=e,this._element&&Data.setData(e,DATA_KEY,this)}var t=e.prototype;return t.close=function(e){var t=this._element;e&&(t=this._getRootElement(e));var n=this._triggerCloseEvent(t);null===n||n.defaultPrevented||this._removeElement(t)},t.dispose=function(){Data.removeData(this._element,DATA_KEY),this._element=null},t._getRootElement=function(e){var t=getSelectorFromElement(e),n=!1;return t&&(n=SelectorEngine.findOne(t)),n||(n=SelectorEngine.closest(e,"."+ClassName.ALERT)),n},t._triggerCloseEvent=function(e){return EventHandler.trigger(e,Event$1.CLOSE)},t._removeElement=function(e){var t=this;if(e.classList.remove(ClassName.SHOW),e.classList.contains(ClassName.FADE)){var n=getTransitionDurationFromElement(e);EventHandler.one(e,TRANSITION_END,function(n){return t._destroyElement(e,n)}),emulateTransitionEnd(e,n)}else this._destroyElement(e)},t._destroyElement=function(e){e.parentNode&&e.parentNode.removeChild(e),EventHandler.trigger(e,Event$1.CLOSED)},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY);n||(n=new e(this)),"close"===t&&n[t](this)})},e._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},e._getInstance=function(e){return Data.getData(e,DATA_KEY)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION}}]),e}();if(EventHandler.on(document,Event$1.CLICK_DATA_API,Selector.DISMISS,Alert._handleDismiss(new Alert)),void 0!==jQuery){var JQUERY_NO_CONFLICT=jQuery.fn[NAME];jQuery.fn[NAME]=Alert._jQueryInterface,jQuery.fn[NAME].Constructor=Alert,jQuery.fn[NAME].noConflict=function(){return jQuery.fn[NAME]=JQUERY_NO_CONFLICT,Alert._jQueryInterface}}var NAME$1="button",VERSION$1="4.3.1",DATA_KEY$1="bs.button",EVENT_KEY$1="."+DATA_KEY$1,DATA_API_KEY$1=".data-api",ClassName$1={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},Selector$1={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:'input:not([type="hidden"])',ACTIVE:".active",BUTTON:".btn"},Event$2={CLICK_DATA_API:"click"+EVENT_KEY$1+DATA_API_KEY$1,FOCUS_DATA_API:"focus"+EVENT_KEY$1+DATA_API_KEY$1,BLUR_DATA_API:"blur"+EVENT_KEY$1+DATA_API_KEY$1},Button=function(){function e(e){this._element=e,Data.setData(e,DATA_KEY$1,this)}var t=e.prototype;return t.toggle=function(){var e=!0,t=!0,n=SelectorEngine.closest(this._element,Selector$1.DATA_TOGGLE);if(n){var i=SelectorEngine.findOne(Selector$1.INPUT,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(ClassName$1.ACTIVE))e=!1;else{var r=SelectorEngine.findOne(Selector$1.ACTIVE,n);r&&r.classList.remove(ClassName$1.ACTIVE)}if(e){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(ClassName$1.ACTIVE),EventHandler.trigger(i,"change")}i.focus(),t=!1}}t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(ClassName$1.ACTIVE)),e&&this._element.classList.toggle(ClassName$1.ACTIVE)},t.dispose=function(){Data.removeData(this._element,DATA_KEY$1),this._element=null},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$1);n||(n=new e(this)),"toggle"===t&&n[t]()})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$1)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$1}}]),e}();if(EventHandler.on(document,Event$2.CLICK_DATA_API,Selector$1.DATA_TOGGLE_CARROT,function(e){e.preventDefault();var t=e.target;t.classList.contains(ClassName$1.BUTTON)||(t=SelectorEngine.closest(t,Selector$1.BUTTON));var n=Data.getData(t,DATA_KEY$1);n||(n=new Button(t),Data.setData(t,DATA_KEY$1,n)),n.toggle()}),EventHandler.on(document,Event$2.FOCUS_DATA_API,Selector$1.DATA_TOGGLE_CARROT,function(e){var t=SelectorEngine.closest(e.target,Selector$1.BUTTON);t&&t.classList.add(ClassName$1.FOCUS)}),EventHandler.on(document,Event$2.BLUR_DATA_API,Selector$1.DATA_TOGGLE_CARROT,function(e){var t=SelectorEngine.closest(e.target,Selector$1.BUTTON);t&&t.classList.remove(ClassName$1.FOCUS)}),void 0!==jQuery){var JQUERY_NO_CONFLICT$1=jQuery.fn[NAME$1];jQuery.fn[NAME$1]=Button._jQueryInterface,jQuery.fn[NAME$1].Constructor=Button,jQuery.fn[NAME$1].noConflict=function(){return jQuery.fn[NAME$1]=JQUERY_NO_CONFLICT$1,Button._jQueryInterface}}function normalizeData(e){return"true"===e||"false"!==e&&(e===Number(e).toString()?Number(e):""===e||"null"===e?null:e)}function normalizeDataKey(e){return e.replace(/[A-Z]/g,function(e){return e.toLowerCase()})}var Manipulator={setDataAttribute:function(e,t,n){e.setAttribute("data-"+normalizeDataKey(t),n)},removeDataAttribute:function(e,t){e.removeAttribute("data-"+normalizeDataKey(t))},getDataAttributes:function(e){if(!e)return{};var t=_objectSpread({},e.dataset);return Object.keys(t).forEach(function(e){t[e]=normalizeData(t[e])}),t},getDataAttribute:function(e,t){return normalizeData(e.getAttribute("data-"+normalizeDataKey(t)))},offset:function(e){var t=e.getBoundingClientRect();return{top:t.top+document.body.scrollTop,left:t.left+document.body.scrollLeft}},position:function(e){return{top:e.offsetTop,left:e.offsetLeft}},toggleClass:function(e,t){e&&(e.classList.contains(t)?e.classList.remove(t):e.classList.add(t))}},NAME$2="carousel",VERSION$2="4.3.1",DATA_KEY$2="bs.carousel",EVENT_KEY$2="."+DATA_KEY$2,DATA_API_KEY$2=".data-api",ARROW_LEFT_KEYCODE=37,ARROW_RIGHT_KEYCODE=39,TOUCHEVENT_COMPAT_WAIT=500,SWIPE_THRESHOLD=40,Default={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},DefaultType={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Direction={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},Event$3={SLIDE:"slide"+EVENT_KEY$2,SLID:"slid"+EVENT_KEY$2,KEYDOWN:"keydown"+EVENT_KEY$2,MOUSEENTER:"mouseenter"+EVENT_KEY$2,MOUSELEAVE:"mouseleave"+EVENT_KEY$2,TOUCHSTART:"touchstart"+EVENT_KEY$2,TOUCHMOVE:"touchmove"+EVENT_KEY$2,TOUCHEND:"touchend"+EVENT_KEY$2,POINTERDOWN:"pointerdown"+EVENT_KEY$2,POINTERUP:"pointerup"+EVENT_KEY$2,DRAG_START:"dragstart"+EVENT_KEY$2,LOAD_DATA_API:"load"+EVENT_KEY$2+DATA_API_KEY$2,CLICK_DATA_API:"click"+EVENT_KEY$2+DATA_API_KEY$2},ClassName$2={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item",POINTER_EVENT:"pointer-event"},Selector$2={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},PointerType={TOUCH:"touch",PEN:"pen"},Carousel=function(){function e(e,t){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(t),this._element=e,this._indicatorsElement=SelectorEngine.findOne(Selector$2.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),Data.setData(e,DATA_KEY$2,this)}var t=e.prototype;return t.next=function(){this._isSliding||this._slide(Direction.NEXT)},t.nextWhenVisible=function(){!document.hidden&&isVisible(this._element)&&this.next()},t.prev=function(){this._isSliding||this._slide(Direction.PREV)},t.pause=function(e){e||(this._isPaused=!0),SelectorEngine.findOne(Selector$2.NEXT_PREV,this._element)&&(triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(e){var t=this;this._activeElement=SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)EventHandler.one(this._element,Event$3.SLID,function(){return t.to(e)});else{if(n===e)return this.pause(),void this.cycle();var i=e>n?Direction.NEXT:Direction.PREV;this._slide(i,this._items[e])}},t.dispose=function(){EventHandler.off(this._element,EVENT_KEY$2),Data.removeData(this._element,DATA_KEY$2),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(e){return e=_objectSpread({},Default,e),typeCheckConfig(NAME$2,e,DefaultType),e},t._handleSwipe=function(){var e=Math.abs(this.touchDeltaX);if(!(e<=SWIPE_THRESHOLD)){var t=e/this.touchDeltaX;this.touchDeltaX=0,t>0&&this.prev(),t<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&EventHandler.on(this._element,Event$3.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(EventHandler.on(this._element,Event$3.MOUSEENTER,function(t){return e.pause(t)}),EventHandler.on(this._element,Event$3.MOUSELEAVE,function(t){return e.cycle(t)})),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var e=this;if(this._touchSupported){var t=function(t){e._pointerEvent&&PointerType[t.pointerType.toUpperCase()]?e.touchStartX=t.clientX:e._pointerEvent||(e.touchStartX=t.touches[0].clientX)},n=function(t){e._pointerEvent&&PointerType[t.pointerType.toUpperCase()]&&(e.touchDeltaX=t.clientX-e.touchStartX),e._handleSwipe(),"hover"===e._config.pause&&(e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},TOUCHEVENT_COMPAT_WAIT+e._config.interval))};makeArray(SelectorEngine.find(Selector$2.ITEM_IMG,this._element)).forEach(function(e){EventHandler.on(e,Event$3.DRAG_START,function(e){return e.preventDefault()})}),this._pointerEvent?(EventHandler.on(this._element,Event$3.POINTERDOWN,function(e){return t(e)}),EventHandler.on(this._element,Event$3.POINTERUP,function(e){return n(e)}),this._element.classList.add(ClassName$2.POINTER_EVENT)):(EventHandler.on(this._element,Event$3.TOUCHSTART,function(e){return t(e)}),EventHandler.on(this._element,Event$3.TOUCHMOVE,function(t){return function(t){t.touches&&t.touches.length>1?e.touchDeltaX=0:e.touchDeltaX=t.touches[0].clientX-e.touchStartX}(t)}),EventHandler.on(this._element,Event$3.TOUCHEND,function(e){return n(e)}))}},t._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case ARROW_LEFT_KEYCODE:e.preventDefault(),this.prev();break;case ARROW_RIGHT_KEYCODE:e.preventDefault(),this.next()}},t._getItemIndex=function(e){return this._items=e&&e.parentNode?makeArray(SelectorEngine.find(Selector$2.ITEM,e.parentNode)):[],this._items.indexOf(e)},t._getItemByDirection=function(e,t){var n=e===Direction.NEXT,i=e===Direction.PREV,r=this._getItemIndex(t),a=this._items.length-1;if((i&&0===r||n&&r===a)&&!this._config.wrap)return t;var o=(r+(e===Direction.PREV?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},t._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),i=this._getItemIndex(SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element));return EventHandler.trigger(this._element,Event$3.SLIDE,{relatedTarget:e,direction:t,from:i,to:n})},t._setActiveIndicatorElement=function(e){if(this._indicatorsElement){for(var t=SelectorEngine.find(Selector$2.ACTIVE,this._indicatorsElement),n=0;n<t.length;n++)t[n].classList.remove(ClassName$2.ACTIVE);var i=this._indicatorsElement.children[this._getItemIndex(e)];i&&i.classList.add(ClassName$2.ACTIVE)}},t._slide=function(e,t){var n,i,r,a=this,o=SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element),s=this._getItemIndex(o),l=t||o&&this._getItemByDirection(e,o),c=this._getItemIndex(l),u=Boolean(this._interval);if(e===Direction.NEXT?(n=ClassName$2.LEFT,i=ClassName$2.NEXT,r=Direction.LEFT):(n=ClassName$2.RIGHT,i=ClassName$2.PREV,r=Direction.RIGHT),l&&l.classList.contains(ClassName$2.ACTIVE))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).defaultPrevented&&o&&l){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l),this._element.classList.contains(ClassName$2.SLIDE)){l.classList.add(i),reflow(l),o.classList.add(n),l.classList.add(n);var E=parseInt(l.getAttribute("data-interval"),10);E?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=E):this._config.interval=this._config.defaultInterval||this._config.interval;var f=getTransitionDurationFromElement(o);EventHandler.one(o,TRANSITION_END,function(){l.classList.remove(n),l.classList.remove(i),l.classList.add(ClassName$2.ACTIVE),o.classList.remove(ClassName$2.ACTIVE),o.classList.remove(i),o.classList.remove(n),a._isSliding=!1,setTimeout(function(){EventHandler.trigger(a._element,Event$3.SLID,{relatedTarget:l,direction:r,from:s,to:c})},0)}),emulateTransitionEnd(o,f)}else o.classList.remove(ClassName$2.ACTIVE),l.classList.add(ClassName$2.ACTIVE),this._isSliding=!1,EventHandler.trigger(this._element,Event$3.SLID,{relatedTarget:l,direction:r,from:s,to:c});u&&this.cycle()}},e._carouselInterface=function(t,n){var i=Data.getData(t,DATA_KEY$2),r=_objectSpread({},Default,Manipulator.getDataAttributes(t));"object"==typeof n&&(r=_objectSpread({},r,n));var a="string"==typeof n?n:r.slide;if(i||(i=new e(t,r)),"number"==typeof n)i.to(n);else if("string"==typeof a){if(void 0===i[a])throw new TypeError('No method named "'+a+'"');i[a]()}else r.interval&&r.ride&&(i.pause(),i.cycle())},e._jQueryInterface=function(t){return this.each(function(){e._carouselInterface(this,t)})},e._dataApiClickHandler=function(t){var n=getSelectorFromElement(this);if(n){var i=SelectorEngine.findOne(n);if(i&&i.classList.contains(ClassName$2.CAROUSEL)){var r=_objectSpread({},Manipulator.getDataAttributes(i),Manipulator.getDataAttributes(this)),a=this.getAttribute("data-slide-to");a&&(r.interval=!1),e._carouselInterface(i,r),a&&Data.getData(i,DATA_KEY$2).to(a),t.preventDefault()}}},e._getInstance=function(e){return Data.getData(e,DATA_KEY$2)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$2}},{key:"Default",get:function(){return Default}}]),e}();if(EventHandler.on(document,Event$3.CLICK_DATA_API,Selector$2.DATA_SLIDE,Carousel._dataApiClickHandler),EventHandler.on(window,Event$3.LOAD_DATA_API,function(){for(var e=makeArray(SelectorEngine.find(Selector$2.DATA_RIDE)),t=0,n=e.length;t<n;t++)Carousel._carouselInterface(e[t],Data.getData(e[t],DATA_KEY$2))}),void 0!==jQuery){var JQUERY_NO_CONFLICT$2=jQuery.fn[NAME$2];jQuery.fn[NAME$2]=Carousel._jQueryInterface,jQuery.fn[NAME$2].Constructor=Carousel,jQuery.fn[NAME$2].noConflict=function(){return jQuery.fn[NAME$2]=JQUERY_NO_CONFLICT$2,Carousel._jQueryInterface}}var NAME$3="collapse",VERSION$3="4.3.1",DATA_KEY$3="bs.collapse",EVENT_KEY$3="."+DATA_KEY$3,DATA_API_KEY$3=".data-api",Default$1={toggle:!0,parent:""},DefaultType$1={toggle:"boolean",parent:"(string|element)"},Event$4={SHOW:"show"+EVENT_KEY$3,SHOWN:"shown"+EVENT_KEY$3,HIDE:"hide"+EVENT_KEY$3,HIDDEN:"hidden"+EVENT_KEY$3,CLICK_DATA_API:"click"+EVENT_KEY$3+DATA_API_KEY$3},ClassName$3={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},Dimension={WIDTH:"width",HEIGHT:"height"},Selector$3={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},Collapse=function(){function e(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=makeArray(SelectorEngine.find('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var n=makeArray(SelectorEngine.find(Selector$3.DATA_TOGGLE)),i=0,r=n.length;i<r;i++){var a=n[i],o=getSelectorFromElement(a),s=makeArray(SelectorEngine.find(o)).filter(function(t){return t===e});null!==o&&s.length&&(this._selector=o,this._triggerArray.push(a))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),Data.setData(e,DATA_KEY$3,this)}var t=e.prototype;return t.toggle=function(){this._element.classList.contains(ClassName$3.SHOW)?this.hide():this.show()},t.show=function(){var t=this;if(!this._isTransitioning&&!this._element.classList.contains(ClassName$3.SHOW)){var n,i;this._parent&&0===(n=makeArray(SelectorEngine.find(Selector$3.ACTIVES,this._parent)).filter(function(e){return"string"==typeof t._config.parent?e.getAttribute("data-parent")===t._config.parent:e.classList.contains(ClassName$3.COLLAPSE)})).length&&(n=null);var r=SelectorEngine.findOne(this._selector);if(n){var a=n.filter(function(e){return r!==e});if((i=a[0]?Data.getData(a[0],DATA_KEY$3):null)&&i._isTransitioning)return}if(!EventHandler.trigger(this._element,Event$4.SHOW).defaultPrevented){n&&n.forEach(function(t){r!==t&&e._collapseInterface(t,"hide"),i||Data.setData(t,DATA_KEY$3,null)});var o=this._getDimension();this._element.classList.remove(ClassName$3.COLLAPSE),this._element.classList.add(ClassName$3.COLLAPSING),this._element.style[o]=0,this._triggerArray.length&&this._triggerArray.forEach(function(e){e.classList.remove(ClassName$3.COLLAPSED),e.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var s="scroll"+(o[0].toUpperCase()+o.slice(1)),l=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,function(){t._element.classList.remove(ClassName$3.COLLAPSING),t._element.classList.add(ClassName$3.COLLAPSE),t._element.classList.add(ClassName$3.SHOW),t._element.style[o]="",t.setTransitioning(!1),EventHandler.trigger(t._element,Event$4.SHOWN)}),emulateTransitionEnd(this._element,l),this._element.style[o]=this._element[s]+"px"}}},t.hide=function(){var e=this;if(!this._isTransitioning&&this._element.classList.contains(ClassName$3.SHOW)&&!EventHandler.trigger(this._element,Event$4.HIDE).defaultPrevented){var t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",reflow(this._element),this._element.classList.add(ClassName$3.COLLAPSING),this._element.classList.remove(ClassName$3.COLLAPSE),this._element.classList.remove(ClassName$3.SHOW);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var r=this._triggerArray[i],a=getSelectorFromElement(r);if(null!==a)SelectorEngine.findOne(a).classList.contains(ClassName$3.SHOW)||(r.classList.add(ClassName$3.COLLAPSED),r.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[t]="";var o=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,function(){e.setTransitioning(!1),e._element.classList.remove(ClassName$3.COLLAPSING),e._element.classList.add(ClassName$3.COLLAPSE),EventHandler.trigger(e._element,Event$4.HIDDEN)}),emulateTransitionEnd(this._element,o)}},t.setTransitioning=function(e){this._isTransitioning=e},t.dispose=function(){Data.removeData(this._element,DATA_KEY$3),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(e){return(e=_objectSpread({},Default$1,e)).toggle=Boolean(e.toggle),typeCheckConfig(NAME$3,e,DefaultType$1),e},t._getDimension=function(){return this._element.classList.contains(Dimension.WIDTH)?Dimension.WIDTH:Dimension.HEIGHT},t._getParent=function(){var t=this,n=this._config.parent;isElement(n)?void 0===n.jquery&&void 0===n[0]||(n=n[0]):n=SelectorEngine.findOne(n);var i='[data-toggle="collapse"][data-parent="'+n+'"]';return makeArray(SelectorEngine.find(i,n)).forEach(function(n){t._addAriaAndCollapsedClass(e._getTargetFromElement(n),[n])}),n},t._addAriaAndCollapsedClass=function(e,t){if(e){var n=e.classList.contains(ClassName$3.SHOW);t.length&&t.forEach(function(e){n?e.classList.remove(ClassName$3.COLLAPSED):e.classList.add(ClassName$3.COLLAPSED),e.setAttribute("aria-expanded",n)})}},e._getTargetFromElement=function(e){var t=getSelectorFromElement(e);return t?SelectorEngine.findOne(t):null},e._collapseInterface=function(t,n){var i=Data.getData(t,DATA_KEY$3),r=_objectSpread({},Default$1,Manipulator.getDataAttributes(t),"object"==typeof n&&n?n:{});if(!i&&r.toggle&&/show|hide/.test(n)&&(r.toggle=!1),i||(i=new e(t,r)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e._jQueryInterface=function(t){return this.each(function(){e._collapseInterface(this,t)})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$3)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$3}},{key:"Default",get:function(){return Default$1}}]),e}();if(EventHandler.on(document,Event$4.CLICK_DATA_API,Selector$3.DATA_TOGGLE,function(e){"A"===e.target.tagName&&e.preventDefault();var t=Manipulator.getDataAttributes(this),n=getSelectorFromElement(this);makeArray(SelectorEngine.find(n)).forEach(function(e){var n,i=Data.getData(e,DATA_KEY$3);i?(null===i._parent&&"string"==typeof t.parent&&(i._config.parent=t.parent,i._parent=i._getParent()),n="toggle"):n=t,Collapse._collapseInterface(e,n)})}),void 0!==jQuery){var JQUERY_NO_CONFLICT$3=jQuery.fn[NAME$3];jQuery.fn[NAME$3]=Collapse._jQueryInterface,jQuery.fn[NAME$3].Constructor=Collapse,jQuery.fn[NAME$3].noConflict=function(){return jQuery.fn[NAME$3]=JQUERY_NO_CONFLICT$3,Collapse._jQueryInterface}}var NAME$4="dropdown",VERSION$4="4.3.1",DATA_KEY$4="bs.dropdown",EVENT_KEY$4="."+DATA_KEY$4,DATA_API_KEY$4=".data-api",ESCAPE_KEYCODE=27,SPACE_KEYCODE=32,TAB_KEYCODE=9,ARROW_UP_KEYCODE=38,ARROW_DOWN_KEYCODE=40,RIGHT_MOUSE_BUTTON_WHICH=3,REGEXP_KEYDOWN=new RegExp(ARROW_UP_KEYCODE+"|"+ARROW_DOWN_KEYCODE+"|"+ESCAPE_KEYCODE),Event$5={HIDE:"hide"+EVENT_KEY$4,HIDDEN:"hidden"+EVENT_KEY$4,SHOW:"show"+EVENT_KEY$4,SHOWN:"shown"+EVENT_KEY$4,CLICK:"click"+EVENT_KEY$4,CLICK_DATA_API:"click"+EVENT_KEY$4+DATA_API_KEY$4,KEYDOWN_DATA_API:"keydown"+EVENT_KEY$4+DATA_API_KEY$4,KEYUP_DATA_API:"keyup"+EVENT_KEY$4+DATA_API_KEY$4},ClassName$4={DISABLED:"disabled",SHOW:"show",DROPUP:"dropup",DROPRIGHT:"dropright",DROPLEFT:"dropleft",MENURIGHT:"dropdown-menu-right",POSITION_STATIC:"position-static"},Selector$4={DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",MENU:".dropdown-menu",NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"},AttachmentMap={TOP:"top-start",TOPEND:"top-end",BOTTOM:"bottom-start",BOTTOMEND:"bottom-end",RIGHT:"right-start",RIGHTEND:"right-end",LEFT:"left-start",LEFTEND:"left-end"},Default$2={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},DefaultType$2={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Dropdown=function(){function e(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),Data.setData(e,DATA_KEY$4,this)}var t=e.prototype;return t.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(ClassName$4.DISABLED)){var t=e._getParentFromElement(this._element),n=this._menu.classList.contains(ClassName$4.SHOW);if(e._clearMenus(),!n){var i={relatedTarget:this._element};if(!EventHandler.trigger(t,Event$5.SHOW,i).defaultPrevented){if(!this._inNavbar){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:isElement(this._config.reference)&&(r=this._config.reference,void 0!==this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&t.classList.add(ClassName$4.POSITION_STATIC),this._popper=new Popper(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!makeArray(SelectorEngine.closest(t,Selector$4.NAVBAR_NAV)).length&&makeArray(document.body.children).forEach(function(e){return EventHandler.on(e,"mouseover",null,noop())}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(t,ClassName$4.SHOW),EventHandler.trigger(t,Event$5.SHOWN,i)}}}},t.show=function(){if(!(this._element.disabled||this._element.classList.contains(ClassName$4.DISABLED)||this._menu.classList.contains(ClassName$4.SHOW))){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};EventHandler.trigger(t,Event$5.SHOW,n).defaultPrevented||(Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(t,ClassName$4.SHOW),EventHandler.trigger(t,Event$5.SHOWN,n))}},t.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(ClassName$4.DISABLED)&&this._menu.classList.contains(ClassName$4.SHOW)){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};EventHandler.trigger(t,Event$5.HIDE,n).defaultPrevented||(Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(t,ClassName$4.SHOW),EventHandler.trigger(t,Event$5.HIDDEN,n))}},t.dispose=function(){Data.removeData(this._element,DATA_KEY$4),EventHandler.off(this._element,EVENT_KEY$4),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;EventHandler.on(this._element,Event$5.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(e){return e=_objectSpread({},this.constructor.Default,Manipulator.getDataAttributes(this._element),e),typeCheckConfig(NAME$4,e,this.constructor.DefaultType),e},t._getMenuElement=function(){if(!this._menu){var t=e._getParentFromElement(this._element);t&&(this._menu=SelectorEngine.findOne(Selector$4.MENU,t))}return this._menu},t._getPlacement=function(){var e=this._element.parentNode,t=AttachmentMap.BOTTOM;return e.classList.contains(ClassName$4.DROPUP)?(t=AttachmentMap.TOP,this._menu.classList.contains(ClassName$4.MENURIGHT)&&(t=AttachmentMap.TOPEND)):e.classList.contains(ClassName$4.DROPRIGHT)?t=AttachmentMap.RIGHT:e.classList.contains(ClassName$4.DROPLEFT)?t=AttachmentMap.LEFT:this._menu.classList.contains(ClassName$4.MENURIGHT)&&(t=AttachmentMap.BOTTOMEND),t},t._detectNavbar=function(){return Boolean(SelectorEngine.closest(this._element,".navbar"))},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=_objectSpread({},t.offsets,e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),e},e._dropdownInterface=function(t,n){var i=Data.getData(t,DATA_KEY$4);if(i||(i=new e(t,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e._jQueryInterface=function(t){return this.each(function(){e._dropdownInterface(this,t)})},e._clearMenus=function(t){if(!t||t.which!==RIGHT_MOUSE_BUTTON_WHICH&&("keyup"!==t.type||t.which===TAB_KEYCODE))for(var n=makeArray(SelectorEngine.find(Selector$4.DATA_TOGGLE)),i=0,r=n.length;i<r;i++){var a=e._getParentFromElement(n[i]),o=Data.getData(n[i],DATA_KEY$4),s={relatedTarget:n[i]};if(t&&"click"===t.type&&(s.clickEvent=t),o){var l=o._menu;if(a.classList.contains(ClassName$4.SHOW))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&t.which===TAB_KEYCODE)&&a.contains(t.target)))EventHandler.trigger(a,Event$5.HIDE,s).defaultPrevented||("ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(function(e){return EventHandler.off(e,"mouseover",null,noop())}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(ClassName$4.SHOW),a.classList.remove(ClassName$4.SHOW),EventHandler.trigger(a,Event$5.HIDDEN,s))}}},e._getParentFromElement=function(e){var t,n=getSelectorFromElement(e);return n&&(t=SelectorEngine.findOne(n)),t||e.parentNode},e._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(t.which===SPACE_KEYCODE||t.which!==ESCAPE_KEYCODE&&(t.which!==ARROW_DOWN_KEYCODE&&t.which!==ARROW_UP_KEYCODE||SelectorEngine.closest(t.target,Selector$4.MENU))):REGEXP_KEYDOWN.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(ClassName$4.DISABLED))){var n=e._getParentFromElement(this),i=n.classList.contains(ClassName$4.SHOW);if(!i||i&&(t.which===ESCAPE_KEYCODE||t.which===SPACE_KEYCODE))return t.which===ESCAPE_KEYCODE&&EventHandler.trigger(SelectorEngine.findOne(Selector$4.DATA_TOGGLE,n),"focus"),void e._clearMenus();var r=makeArray(SelectorEngine.find(Selector$4.VISIBLE_ITEMS,n));if(r.length){var a=r.indexOf(t.target);t.which===ARROW_UP_KEYCODE&&a>0&&a--,t.which===ARROW_DOWN_KEYCODE&&a<r.length-1&&a++,a<0&&(a=0),r[a].focus()}}},e._getInstance=function(e){return Data.getData(e,DATA_KEY$4)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$4}},{key:"Default",get:function(){return Default$2}},{key:"DefaultType",get:function(){return DefaultType$2}}]),e}();if(EventHandler.on(document,Event$5.KEYDOWN_DATA_API,Selector$4.DATA_TOGGLE,Dropdown._dataApiKeydownHandler),EventHandler.on(document,Event$5.KEYDOWN_DATA_API,Selector$4.MENU,Dropdown._dataApiKeydownHandler),EventHandler.on(document,Event$5.CLICK_DATA_API,Dropdown._clearMenus),EventHandler.on(document,Event$5.KEYUP_DATA_API,Dropdown._clearMenus),EventHandler.on(document,Event$5.CLICK_DATA_API,Selector$4.DATA_TOGGLE,function(e){e.preventDefault(),e.stopPropagation(),Dropdown._dropdownInterface(this,"toggle")}),EventHandler.on(document,Event$5.CLICK_DATA_API,Selector$4.FORM_CHILD,function(e){return e.stopPropagation()}),void 0!==jQuery){var JQUERY_NO_CONFLICT$4=jQuery.fn[NAME$4];jQuery.fn[NAME$4]=Dropdown._jQueryInterface,jQuery.fn[NAME$4].Constructor=Dropdown,jQuery.fn[NAME$4].noConflict=function(){return jQuery.fn[NAME$4]=JQUERY_NO_CONFLICT$4,Dropdown._jQueryInterface}}var NAME$5="modal",VERSION$5="4.3.1",DATA_KEY$5="bs.modal",EVENT_KEY$5="."+DATA_KEY$5,DATA_API_KEY$5=".data-api",ESCAPE_KEYCODE$1=27,Default$3={backdrop:!0,keyboard:!0,focus:!0,show:!0},DefaultType$3={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Event$6={HIDE:"hide"+EVENT_KEY$5,HIDDEN:"hidden"+EVENT_KEY$5,SHOW:"show"+EVENT_KEY$5,SHOWN:"shown"+EVENT_KEY$5,FOCUSIN:"focusin"+EVENT_KEY$5,RESIZE:"resize"+EVENT_KEY$5,CLICK_DISMISS:"click.dismiss"+EVENT_KEY$5,KEYDOWN_DISMISS:"keydown.dismiss"+EVENT_KEY$5,MOUSEUP_DISMISS:"mouseup.dismiss"+EVENT_KEY$5,MOUSEDOWN_DISMISS:"mousedown.dismiss"+EVENT_KEY$5,CLICK_DATA_API:"click"+EVENT_KEY$5+DATA_API_KEY$5},ClassName$5={SCROLLABLE:"modal-dialog-scrollable",SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},Selector$5={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Modal=function(){function e(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=SelectorEngine.findOne(Selector$5.DIALOG,e),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,Data.setData(e,DATA_KEY$5,this)}var t=e.prototype;return t.toggle=function(e){return this._isShown?this.hide():this.show(e)},t.show=function(e){var t=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(ClassName$5.FADE)&&(this._isTransitioning=!0);var n=EventHandler.trigger(this._element,Event$6.SHOW,{relatedTarget:e});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.on(this._element,Event$6.CLICK_DISMISS,Selector$5.DATA_DISMISS,function(e){return t.hide(e)}),EventHandler.on(this._dialog,Event$6.MOUSEDOWN_DISMISS,function(){EventHandler.one(t._element,Event$6.MOUSEUP_DISMISS,function(e){e.target===t._element&&(t._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return t._showElement(e)}))}},t.hide=function(e){var t=this;if(e&&e.preventDefault(),this._isShown&&!this._isTransitioning){var n=EventHandler.trigger(this._element,Event$6.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(ClassName$5.FADE);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.off(document,Event$6.FOCUSIN),this._element.classList.remove(ClassName$5.SHOW),EventHandler.off(this._element,Event$6.CLICK_DISMISS),EventHandler.off(this._dialog,Event$6.MOUSEDOWN_DISMISS),i){var r=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,function(e){return t._hideModal(e)}),emulateTransitionEnd(this._element,r)}else this._hideModal()}}},t.dispose=function(){[window,this._element,this._dialog].forEach(function(e){return EventHandler.off(e,EVENT_KEY$5)}),EventHandler.off(document,Event$6.FOCUSIN),Data.removeData(this._element,DATA_KEY$5),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(e){return e=_objectSpread({},Default$3,e),typeCheckConfig(NAME$5,e,DefaultType$3),e},t._showElement=function(e){var t=this,n=this._element.classList.contains(ClassName$5.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(ClassName$5.SCROLLABLE)?SelectorEngine.findOne(Selector$5.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&reflow(this._element),this._element.classList.add(ClassName$5.SHOW),this._config.focus&&this._enforceFocus();var i=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,EventHandler.trigger(t._element,Event$6.SHOWN,{relatedTarget:e})};if(n){var r=getTransitionDurationFromElement(this._dialog);EventHandler.one(this._dialog,TRANSITION_END,i),emulateTransitionEnd(this._dialog,r)}else i()},t._enforceFocus=function(){var e=this;EventHandler.off(document,Event$6.FOCUSIN),EventHandler.on(document,Event$6.FOCUSIN,function(t){document===t.target||e._element===t.target||e._element.contains(t.target)||e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?EventHandler.on(this._element,Event$6.KEYDOWN_DISMISS,function(t){t.which===ESCAPE_KEYCODE$1&&(t.preventDefault(),e.hide())}):this._isShown||EventHandler.off(this._element,Event$6.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?EventHandler.on(window,Event$6.RESIZE,function(t){return e.handleUpdate(t)}):EventHandler.off(window,Event$6.RESIZE)},t._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(ClassName$5.OPEN),e._resetAdjustments(),e._resetScrollbar(),EventHandler.trigger(e._element,Event$6.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},t._showBackdrop=function(e){var t=this,n=this._element.classList.contains(ClassName$5.FADE)?ClassName$5.FADE:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=ClassName$5.BACKDROP,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),EventHandler.on(this._element,Event$6.CLICK_DISMISS,function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===t._config.backdrop?t._element.focus():t.hide())}),n&&reflow(this._backdrop),this._backdrop.classList.add(ClassName$5.SHOW),!e)return;if(!n)return void e();var i=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,e),emulateTransitionEnd(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(ClassName$5.SHOW);var r=function(){t._removeBackdrop(),e&&e()};if(this._element.classList.contains(ClassName$5.FADE)){var a=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,r),emulateTransitionEnd(this._backdrop,a)}else r()}else e&&e()},t._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var e=this;if(this._isBodyOverflowing){makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(function(t){var n=t.style.paddingRight,i=window.getComputedStyle(t)["padding-right"];Manipulator.setDataAttribute(t,"padding-right",n),t.style.paddingRight=parseFloat(i)+e._scrollbarWidth+"px"}),makeArray(SelectorEngine.find(Selector$5.STICKY_CONTENT)).forEach(function(t){var n=t.style.marginRight,i=window.getComputedStyle(t)["margin-right"];Manipulator.setDataAttribute(t,"margin-right",n),t.style.marginRight=parseFloat(i)-e._scrollbarWidth+"px"});var t=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];Manipulator.setDataAttribute(document.body,"padding-right",t),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(ClassName$5.OPEN)},t._resetScrollbar=function(){makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(function(e){var t=Manipulator.getDataAttribute(e,"padding-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"padding-right"),e.style.paddingRight=t)}),makeArray(SelectorEngine.find(""+Selector$5.STICKY_CONTENT)).forEach(function(e){var t=Manipulator.getDataAttribute(e,"margin-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"margin-right"),e.style.marginRight=t)});var e=Manipulator.getDataAttribute(document.body,"padding-right");void 0===e?document.body.style.paddingRight="":(Manipulator.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=e)},t._getScrollbarWidth=function(){var e=document.createElement("div");e.className=ClassName$5.SCROLLBAR_MEASURER,document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},e._jQueryInterface=function(t,n){return this.each(function(){var i=Data.getData(this,DATA_KEY$5),r=_objectSpread({},Default$3,Manipulator.getDataAttributes(this),"object"==typeof t&&t?t:{});if(i||(i=new e(this,r)),"string"==typeof t){if(void 0===i[t])throw new TypeError('No method named "'+t+'"');i[t](n)}else r.show&&i.show(n)})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$5)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$5}},{key:"Default",get:function(){return Default$3}}]),e}();if(EventHandler.on(document,Event$6.CLICK_DATA_API,Selector$5.DATA_TOGGLE,function(e){var t,n=this,i=getSelectorFromElement(this);i&&(t=SelectorEngine.findOne(i));var r=Data.getData(t,DATA_KEY$5)?"toggle":_objectSpread({},Manipulator.getDataAttributes(t),Manipulator.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault(),EventHandler.one(t,Event$6.SHOW,function(e){e.defaultPrevented||EventHandler.one(t,Event$6.HIDDEN,function(){isVisible(n)&&n.focus()})});var a=Data.getData(t,DATA_KEY$5);a||(a=new Modal(t,r)),a.show(this)}),void 0!==jQuery){var JQUERY_NO_CONFLICT$5=jQuery.fn[NAME$5];jQuery.fn[NAME$5]=Modal._jQueryInterface,jQuery.fn[NAME$5].Constructor=Modal,jQuery.fn[NAME$5].noConflict=function(){return jQuery.fn[NAME$5]=JQUERY_NO_CONFLICT$5,Modal._jQueryInterface}}var uriAttrs=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,DATA_URL_PATTERN=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,allowedAttribute=function(e,t){var n=e.nodeName.toLowerCase();if(-1!==t.indexOf(n))return-1===uriAttrs.indexOf(n)||Boolean(e.nodeValue.match(SAFE_URL_PATTERN)||e.nodeValue.match(DATA_URL_PATTERN));for(var i=t.filter(function(e){return e instanceof RegExp}),r=0,a=i.length;r<a;r++)if(n.match(i[r]))return!0;return!1},DefaultWhitelist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function sanitizeHtml(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);for(var i=(new window.DOMParser).parseFromString(e,"text/html"),r=Object.keys(t),a=makeArray(i.body.querySelectorAll("*")),o=function(e,n){var i=a[e],o=i.nodeName.toLowerCase();if(-1===r.indexOf(o))return i.parentNode.removeChild(i),"continue";var s=makeArray(i.attributes),l=[].concat(t["*"]||[],t[o]||[]);s.forEach(function(e){allowedAttribute(e,l)||i.removeAttribute(e.nodeName)})},s=0,l=a.length;s<l;s++)o(s);return i.body.innerHTML}var NAME$6="tooltip",VERSION$6="4.3.1",DATA_KEY$6="bs.tooltip",EVENT_KEY$6="."+DATA_KEY$6,CLASS_PREFIX="bs-tooltip",BSCLS_PREFIX_REGEX=new RegExp("(^|\\s)"+CLASS_PREFIX+"\\S+","g"),DISALLOWED_ATTRIBUTES=["sanitize","whiteList","sanitizeFn"],DefaultType$4={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},AttachmentMap$1={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Default$4={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:DefaultWhitelist},HoverState={SHOW:"show",OUT:"out"},Event$7={HIDE:"hide"+EVENT_KEY$6,HIDDEN:"hidden"+EVENT_KEY$6,SHOW:"show"+EVENT_KEY$6,SHOWN:"shown"+EVENT_KEY$6,INSERTED:"inserted"+EVENT_KEY$6,CLICK:"click"+EVENT_KEY$6,FOCUSIN:"focusin"+EVENT_KEY$6,FOCUSOUT:"focusout"+EVENT_KEY$6,MOUSEENTER:"mouseenter"+EVENT_KEY$6,MOUSELEAVE:"mouseleave"+EVENT_KEY$6},ClassName$6={FADE:"fade",SHOW:"show"},Selector$6={TOOLTIP_INNER:".tooltip-inner",TOOLTIP_ARROW:".tooltip-arrow"},Trigger={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},Tooltip=function(){function e(e,t){if(void 0===Popper)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=e,this.config=this._getConfig(t),this.tip=null,this._setListeners(),Data.setData(e,this.constructor.DATA_KEY,this)}var t=e.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=Data.getData(e.delegateTarget,t);n||(n=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(ClassName$6.SHOW))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),Data.removeData(this.element,this.constructor.DATA_KEY),EventHandler.off(this.element,this.constructor.EVENT_KEY),EventHandler.off(SelectorEngine.closest(this.element,".modal"),"hide.bs.modal"),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var t=EventHandler.trigger(this.element,this.constructor.Event.SHOW),n=findShadowRoot(this.element),i=null===n?this.element.ownerDocument.documentElement.contains(this.element):n.contains(this.element);if(t.defaultPrevented||!i)return;var r=this.getTipElement(),a=getUID(this.constructor.NAME);r.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&r.classList.add(ClassName$6.FADE);var o="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var l=this._getContainer();Data.setData(r,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||l.appendChild(r),EventHandler.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new Popper(this.element,r,{placement:s,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Selector$6.TOOLTIP_ARROW},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),r.classList.add(ClassName$6.SHOW),"ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(function(e){EventHandler.on(e,"mouseover",noop())});var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,EventHandler.trigger(e.element,e.constructor.Event.SHOWN),t===HoverState.OUT&&e._leave(null,e)};if(this.tip.classList.contains(ClassName$6.FADE)){var u=getTransitionDurationFromElement(this.tip);EventHandler.one(this.tip,TRANSITION_END,c),emulateTransitionEnd(this.tip,u)}else c()}},t.hide=function(e){var t=this,n=this.getTipElement(),i=function(){t._hoverState!==HoverState.SHOW&&n.parentNode&&n.parentNode.removeChild(n),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),EventHandler.trigger(t.element,t.constructor.Event.HIDDEN),null!==t._popper&&t._popper.destroy(),e&&e()};if(!EventHandler.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(ClassName$6.SHOW),"ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(function(e){return EventHandler.off(e,"mouseover",noop)}),this._activeTrigger[Trigger.CLICK]=!1,this._activeTrigger[Trigger.FOCUS]=!1,this._activeTrigger[Trigger.HOVER]=!1,this.tip.classList.contains(ClassName$6.FADE)){var r=getTransitionDurationFromElement(n);EventHandler.one(n,TRANSITION_END,i),emulateTransitionEnd(n,r)}else i();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(e){this.getTipElement().classList.add(CLASS_PREFIX+"-"+e)},t.getTipElement=function(){if(this.tip)return this.tip;var e=document.createElement("div");return e.innerHTML=this.config.template,this.tip=e.children[0],this.tip},t.setContent=function(){var e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(Selector$6.TOOLTIP_INNER,e),this.getTitle()),e.classList.remove(ClassName$6.FADE),e.classList.remove(ClassName$6.SHOW)},t.setElementContent=function(e,t){if(null!==e)return"object"==typeof t&&(t.nodeType||t.jquery)?(t.jquery&&(t=t[0]),void(this.config.html?t.parentNode!==e&&(e.innerHTML="",e.appendChild(t)):e.innerText=t.textContent)):void(this.config.html?(this.config.sanitize&&(t=sanitizeHtml(t,this.config.whiteList,this.config.sanitizeFn)),e.innerHTML=t):e.innerText=t)},t.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=_objectSpread({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:isElement(this.config.container)?this.config.container:SelectorEngine.findOne(this.config.container)},t._getAttachment=function(e){return AttachmentMap$1[e.toUpperCase()]},t._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)EventHandler.on(e.element,e.constructor.Event.CLICK,e.config.selector,function(t){return e.toggle(t)});else if(t!==Trigger.MANUAL){var n=t===Trigger.HOVER?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,i=t===Trigger.HOVER?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;EventHandler.on(e.element,n,e.config.selector,function(t){return e._enter(t)}),EventHandler.on(e.element,i,e.config.selector,function(t){return e._leave(t)})}}),EventHandler.on(SelectorEngine.closest(this.element,".modal"),"hide.bs.modal",function(){e.element&&e.hide()}),this.config.selector?this.config=_objectSpread({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(e,t){var n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusin"===e.type?Trigger.FOCUS:Trigger.HOVER]=!0),t.getTipElement().classList.contains(ClassName$6.SHOW)||t._hoverState===HoverState.SHOW?t._hoverState=HoverState.SHOW:(clearTimeout(t._timeout),t._hoverState=HoverState.SHOW,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(function(){t._hoverState===HoverState.SHOW&&t.show()},t.config.delay.show):t.show())},t._leave=function(e,t){var n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusout"===e.type?Trigger.FOCUS:Trigger.HOVER]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=HoverState.OUT,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(function(){t._hoverState===HoverState.OUT&&t.hide()},t.config.delay.hide):t.hide())},t._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},t._getConfig=function(e){var t=Manipulator.getDataAttributes(this.element);return Object.keys(t).forEach(function(e){-1!==DISALLOWED_ATTRIBUTES.indexOf(e)&&delete t[e]}),e&&"object"==typeof e.container&&e.container.jquery&&(e.container=e.container[0]),"number"==typeof(e=_objectSpread({},this.constructor.Default,t,"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),typeCheckConfig(NAME$6,e,this.constructor.DefaultType),e.sanitize&&(e.template=sanitizeHtml(e.template,e.whiteList,e.sanitizeFn)),e},t._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},t._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX);null!==t&&t.length&&t.map(function(e){return e.trim()}).forEach(function(t){return e.classList.remove(t)})},t._handlePopperPlacementChange=function(e){var t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},t._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(e.classList.remove(ClassName$6.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$6),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$6)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$6}},{key:"Default",get:function(){return Default$4}},{key:"NAME",get:function(){return NAME$6}},{key:"DATA_KEY",get:function(){return DATA_KEY$6}},{key:"Event",get:function(){return Event$7}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$6}},{key:"DefaultType",get:function(){return DefaultType$4}}]),e}();if(void 0!==jQuery){var JQUERY_NO_CONFLICT$6=jQuery.fn[NAME$6];jQuery.fn[NAME$6]=Tooltip._jQueryInterface,jQuery.fn[NAME$6].Constructor=Tooltip,jQuery.fn[NAME$6].noConflict=function(){return jQuery.fn[NAME$6]=JQUERY_NO_CONFLICT$6,Tooltip._jQueryInterface}}var NAME$7="popover",VERSION$7="4.3.1",DATA_KEY$7="bs.popover",EVENT_KEY$7="."+DATA_KEY$7,CLASS_PREFIX$1="bs-popover",BSCLS_PREFIX_REGEX$1=new RegExp("(^|\\s)"+CLASS_PREFIX$1+"\\S+","g"),Default$5=_objectSpread({},Tooltip.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),DefaultType$5=_objectSpread({},Tooltip.DefaultType,{content:"(string|element|function)"}),ClassName$7={FADE:"fade",SHOW:"show"},Selector$7={TITLE:".popover-header",CONTENT:".popover-body"},Event$8={HIDE:"hide"+EVENT_KEY$7,HIDDEN:"hidden"+EVENT_KEY$7,SHOW:"show"+EVENT_KEY$7,SHOWN:"shown"+EVENT_KEY$7,INSERTED:"inserted"+EVENT_KEY$7,CLICK:"click"+EVENT_KEY$7,FOCUSIN:"focusin"+EVENT_KEY$7,FOCUSOUT:"focusout"+EVENT_KEY$7,MOUSEENTER:"mouseenter"+EVENT_KEY$7,MOUSELEAVE:"mouseleave"+EVENT_KEY$7},Popover=function(e){function t(){return e.apply(this,arguments)||this}_inheritsLoose(t,e);var n=t.prototype;return n.isWithContent=function(){return this.getTitle()||this._getContent()},n.addAttachmentClass=function(e){this.getTipElement().classList.add(CLASS_PREFIX$1+"-"+e)},n.setContent=function(){var e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(Selector$7.TITLE,e),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(SelectorEngine.findOne(Selector$7.CONTENT,e),t),e.classList.remove(ClassName$7.FADE),e.classList.remove(ClassName$7.SHOW)},n._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},n._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX$1);null!==t&&t.length>0&&t.map(function(e){return e.trim()}).forEach(function(t){return e.classList.remove(t)})},t._jQueryInterface=function(e){return this.each(function(){var n=Data.getData(this,DATA_KEY$7),i="object"==typeof e?e:null;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i),Data.setData(this,DATA_KEY$7,n)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(e){return Data.getData(e,DATA_KEY$7)},_createClass(t,null,[{key:"VERSION",get:function(){return VERSION$7}},{key:"Default",get:function(){return Default$5}},{key:"NAME",get:function(){return NAME$7}},{key:"DATA_KEY",get:function(){return DATA_KEY$7}},{key:"Event",get:function(){return Event$8}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$7}},{key:"DefaultType",get:function(){return DefaultType$5}}]),t}(Tooltip);if(void 0!==jQuery){var JQUERY_NO_CONFLICT$7=jQuery.fn[NAME$7];jQuery.fn[NAME$7]=Popover._jQueryInterface,jQuery.fn[NAME$7].Constructor=Popover,jQuery.fn[NAME$7].noConflict=function(){return jQuery.fn[NAME$7]=JQUERY_NO_CONFLICT$7,Popover._jQueryInterface}}var NAME$8="scrollspy",VERSION$8="4.3.1",DATA_KEY$8="bs.scrollspy",EVENT_KEY$8="."+DATA_KEY$8,DATA_API_KEY$6=".data-api",Default$6={offset:10,method:"auto",target:""},DefaultType$6={offset:"number",method:"string",target:"(string|element)"},Event$9={ACTIVATE:"activate"+EVENT_KEY$8,SCROLL:"scroll"+EVENT_KEY$8,LOAD_DATA_API:"load"+EVENT_KEY$8+DATA_API_KEY$6},ClassName$8={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},Selector$8={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},OffsetMethod={OFFSET:"offset",POSITION:"position"},ScrollSpy=function(){function e(e,t){var n=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+Selector$8.NAV_LINKS+","+this._config.target+" "+Selector$8.LIST_ITEMS+","+this._config.target+" ."+ClassName$8.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,EventHandler.on(this._scrollElement,Event$9.SCROLL,function(e){return n._process(e)}),this.refresh(),this._process(),Data.setData(e,DATA_KEY$8,this)}var t=e.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?OffsetMethod.OFFSET:OffsetMethod.POSITION,n="auto"===this._config.method?t:this._config.method,i=n===OffsetMethod.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),makeArray(SelectorEngine.find(this._selector)).map(function(e){var t,r=getSelectorFromElement(e);if(r&&(t=SelectorEngine.findOne(r)),t){var a=t.getBoundingClientRect();if(a.width||a.height)return[Manipulator[n](t).top+i,r]}return null}).filter(function(e){return e}).sort(function(e,t){return e[0]-t[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){Data.removeData(this._element,DATA_KEY$8),EventHandler.off(this._scrollElement,EVENT_KEY$8),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(e){if("string"!=typeof(e=_objectSpread({},Default$6,"object"==typeof e&&e?e:{})).target){var t=e.target.id;t||(t=getUID(NAME$8),e.target.id=t),e.target="#"+t}return typeCheckConfig(NAME$8,e,DefaultType$6),e},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&e<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&e>=this._offsets[r]&&(void 0===this._offsets[r+1]||e<this._offsets[r+1])&&this._activate(this._targets[r])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'}),n=SelectorEngine.findOne(t.join(","));n.classList.contains(ClassName$8.DROPDOWN_ITEM)?(SelectorEngine.findOne(Selector$8.DROPDOWN_TOGGLE,SelectorEngine.closest(n,Selector$8.DROPDOWN)).classList.add(ClassName$8.ACTIVE),n.classList.add(ClassName$8.ACTIVE)):(n.classList.add(ClassName$8.ACTIVE),SelectorEngine.parents(n,Selector$8.NAV_LIST_GROUP).forEach(function(e){SelectorEngine.prev(e,Selector$8.NAV_LINKS+", "+Selector$8.LIST_ITEMS).forEach(function(e){return e.classList.add(ClassName$8.ACTIVE)}),SelectorEngine.prev(e,Selector$8.NAV_ITEMS).forEach(function(e){SelectorEngine.children(e,Selector$8.NAV_LINKS).forEach(function(e){return e.classList.add(ClassName$8.ACTIVE)})})})),EventHandler.trigger(this._scrollElement,Event$9.ACTIVATE,{relatedTarget:e})},t._clear=function(){makeArray(SelectorEngine.find(this._selector)).filter(function(e){return e.classList.contains(ClassName$8.ACTIVE)}).forEach(function(e){return e.classList.remove(ClassName$8.ACTIVE)})},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$8);if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$8)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$8}},{key:"Default",get:function(){return Default$6}}]),e}();if(EventHandler.on(window,Event$9.LOAD_DATA_API,function(){makeArray(SelectorEngine.find(Selector$8.DATA_SPY)).forEach(function(e){return new ScrollSpy(e,Manipulator.getDataAttributes(e))})}),void 0!==jQuery){var JQUERY_NO_CONFLICT$8=jQuery.fn[NAME$8];jQuery.fn[NAME$8]=ScrollSpy._jQueryInterface,jQuery.fn[NAME$8].Constructor=ScrollSpy,jQuery.fn[NAME$8].noConflict=function(){return jQuery.fn[NAME$8]=JQUERY_NO_CONFLICT$8,ScrollSpy._jQueryInterface}}var NAME$9="tab",VERSION$9="4.3.1",DATA_KEY$9="bs.tab",EVENT_KEY$9="."+DATA_KEY$9,DATA_API_KEY$7=".data-api",Event$a={HIDE:"hide"+EVENT_KEY$9,HIDDEN:"hidden"+EVENT_KEY$9,SHOW:"show"+EVENT_KEY$9,SHOWN:"shown"+EVENT_KEY$9,CLICK_DATA_API:"click"+EVENT_KEY$9+DATA_API_KEY$7},ClassName$9={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",DISABLED:"disabled",FADE:"fade",SHOW:"show"},Selector$9={DROPDOWN:".dropdown",NAV_LIST_GROUP:".nav, .list-group",ACTIVE:".active",ACTIVE_UL:":scope > li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:":scope > .dropdown-menu .active"},Tab=function(){function e(e){this._element=e,Data.setData(this._element,DATA_KEY$9,this)}var t=e.prototype;return t.show=function(){var e=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(ClassName$9.ACTIVE)||this._element.classList.contains(ClassName$9.DISABLED))){var t,n,i=SelectorEngine.closest(this._element,Selector$9.NAV_LIST_GROUP),r=getSelectorFromElement(this._element);if(i){var a="UL"===i.nodeName||"OL"===i.nodeName?Selector$9.ACTIVE_UL:Selector$9.ACTIVE;n=(n=makeArray(SelectorEngine.find(a,i)))[n.length-1]}var o=null;if(n&&(o=EventHandler.trigger(n,Event$a.HIDE,{relatedTarget:this._element})),!(EventHandler.trigger(this._element,Event$a.SHOW,{relatedTarget:n}).defaultPrevented||null!==o&&o.defaultPrevented)){r&&(t=SelectorEngine.findOne(r)),this._activate(this._element,i);var s=function(){EventHandler.trigger(n,Event$a.HIDDEN,{relatedTarget:e._element}),EventHandler.trigger(e._element,Event$a.SHOWN,{relatedTarget:n})};t?this._activate(t,t.parentNode,s):s()}}},t.dispose=function(){Data.removeData(this._element,DATA_KEY$9),this._element=null},t._activate=function(e,t,n){var i=this,r=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?SelectorEngine.children(t,Selector$9.ACTIVE):SelectorEngine.find(Selector$9.ACTIVE_UL,t))[0],a=n&&r&&r.classList.contains(ClassName$9.FADE),o=function(){return i._transitionComplete(e,r,n)};if(r&&a){var s=getTransitionDurationFromElement(r);r.classList.remove(ClassName$9.SHOW),EventHandler.one(r,TRANSITION_END,o),emulateTransitionEnd(r,s)}else o()},t._transitionComplete=function(e,t,n){if(t){t.classList.remove(ClassName$9.ACTIVE);var i=SelectorEngine.findOne(Selector$9.DROPDOWN_ACTIVE_CHILD,t.parentNode);i&&i.classList.remove(ClassName$9.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}(e.classList.add(ClassName$9.ACTIVE),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),reflow(e),e.classList.contains(ClassName$9.FADE)&&e.classList.add(ClassName$9.SHOW),e.parentNode&&e.parentNode.classList.contains(ClassName$9.DROPDOWN_MENU))&&(SelectorEngine.closest(e,Selector$9.DROPDOWN)&&makeArray(SelectorEngine.find(Selector$9.DROPDOWN_TOGGLE)).forEach(function(e){return e.classList.add(ClassName$9.ACTIVE)}),e.setAttribute("aria-expanded",!0));n&&n()},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$9)||new e(this);if("string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$9)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$9}}]),e}();if(EventHandler.on(document,Event$a.CLICK_DATA_API,Selector$9.DATA_TOGGLE,function(e){e.preventDefault(),(Data.getData(this,DATA_KEY$9)||new Tab(this)).show()}),void 0!==jQuery){var JQUERY_NO_CONFLICT$9=jQuery.fn[NAME$9];jQuery.fn[NAME$9]=Tab._jQueryInterface,jQuery.fn[NAME$9].Constructor=Tab,jQuery.fn[NAME$9].noConflict=function(){return jQuery.fn[NAME$9]=JQUERY_NO_CONFLICT$9,Tab._jQueryInterface}}var NAME$a="toast",VERSION$a="4.3.1",DATA_KEY$a="bs.toast",EVENT_KEY$a="."+DATA_KEY$a,Event$b={CLICK_DISMISS:"click.dismiss"+EVENT_KEY$a,HIDE:"hide"+EVENT_KEY$a,HIDDEN:"hidden"+EVENT_KEY$a,SHOW:"show"+EVENT_KEY$a,SHOWN:"shown"+EVENT_KEY$a},ClassName$a={FADE:"fade",HIDE:"hide",SHOW:"show",SHOWING:"showing"},DefaultType$7={animation:"boolean",autohide:"boolean",delay:"number"},Default$7={animation:!0,autohide:!0,delay:500},Selector$a={DATA_DISMISS:'[data-dismiss="toast"]'},Toast=function(){function e(e,t){this._element=e,this._config=this._getConfig(t),this._timeout=null,this._setListeners(),Data.setData(e,DATA_KEY$a,this)}var t=e.prototype;return t.show=function(){var e=this;EventHandler.trigger(this._element,Event$b.SHOW),this._config.animation&&this._element.classList.add(ClassName$a.FADE);var t=function(){e._element.classList.remove(ClassName$a.SHOWING),e._element.classList.add(ClassName$a.SHOW),EventHandler.trigger(e._element,Event$b.SHOWN),e._config.autohide&&(e._timeout=setTimeout(function(){e.hide()},e._config.delay))};if(this._element.classList.remove(ClassName$a.HIDE),this._element.classList.add(ClassName$a.SHOWING),this._config.animation){var n=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,t),emulateTransitionEnd(this._element,n)}else t()},t.hide=function(){var e=this;if(this._element.classList.contains(ClassName$a.SHOW)){EventHandler.trigger(this._element,Event$b.HIDE);var t=function(){e._element.classList.add(ClassName$a.HIDE),EventHandler.trigger(e._element,Event$b.HIDDEN)};if(this._element.classList.remove(ClassName$a.SHOW),this._config.animation){var n=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,t),emulateTransitionEnd(this._element,n)}else t()}},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(ClassName$a.SHOW)&&this._element.classList.remove(ClassName$a.SHOW),EventHandler.off(this._element,Event$b.CLICK_DISMISS),Data.removeData(this._element,DATA_KEY$a),this._element=null,this._config=null},t._getConfig=function(e){return e=_objectSpread({},Default$7,Manipulator.getDataAttributes(this._element),"object"==typeof e&&e?e:{}),typeCheckConfig(NAME$a,e,this.constructor.DefaultType),e},t._setListeners=function(){var e=this;EventHandler.on(this._element,Event$b.CLICK_DISMISS,Selector$a.DATA_DISMISS,function(){return e.hide()})},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$a);if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t](this)}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$a)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$a}},{key:"DefaultType",get:function(){return DefaultType$7}},{key:"Default",get:function(){return Default$7}}]),e}();if(void 0!==jQuery){var JQUERY_NO_CONFLICT$a=jQuery.fn[NAME$a];jQuery.fn[NAME$a]=Toast._jQueryInterface,jQuery.fn[NAME$a].Constructor=Toast,jQuery.fn[NAME$a].noConflict=function(){return jQuery.fn[NAME$a]=JQUERY_NO_CONFLICT$a,Toast._jQueryInterface}}export{Alert,Button,Carousel,Collapse,Dropdown,Modal,Popover,ScrollSpy,Tab,Toast,Tooltip}; //# sourceMappingURL=bootstrap.esm.min.js.map
\ No newline at end of file diff --git a/dist/js/bootstrap.esm.min.js.map b/dist/js/bootstrap.esm.min.js.map index 70098174f6..c7261b7bd4 100644 --- a/dist/js/bootstrap.esm.min.js.map +++ b/dist/js/bootstrap.esm.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","_window$getComputedSt","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","this","hasId","Boolean","replace","removeAttribute","matches","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","_normalizeParams","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","isNative","jQueryEvent","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","NODE_TEXT","SelectorEngine","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","constructor","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","each","alertInstance","_handleDismiss","JQUERY_NO_CONFLICT","_jQueryInterface","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_extends","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","nextElementInterval","parseInt","defaultInterval","action","TypeError","ride","_carouselInterface","slideIndex","_dataApiClickHandler","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","items","_dataApiKeydownHandler","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","SHOWING","autohide","Toast","withoutTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n })()\n\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n }\n\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!Polyfill.defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"]}
\ No newline at end of file +{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","_window$getComputedSt","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","this","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","_i","_Object$keys","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","_normalizeParams","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","isNative","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","_this","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","start","_this3","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_this4","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","_this8","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","_this9","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this10","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","SHOWING","autohide","Toast"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n for (const uid of Object.keys(events)) {\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"]}
\ No newline at end of file diff --git a/dist/js/bootstrap.js b/dist/js/bootstrap.js index 1fb68d47e9..feca02e8de 100644 --- a/dist/js/bootstrap.js +++ b/dist/js/bootstrap.js @@ -137,7 +137,9 @@ }; var triggerTransitionEnd = function triggerTransitionEnd(element) { - element.dispatchEvent(new Event(TRANSITION_END)); + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(TRANSITION_END, true, true); + element.dispatchEvent(evt); }; var isElement = function isElement(obj) { @@ -293,93 +295,145 @@ } }; - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.3.1): dom/polyfill.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - /* istanbul ignore next */ + /* istanbul ignore file */ + var _Element$prototype = Element.prototype, + matches = _Element$prototype.matches, + closest = _Element$prototype.closest; + var find = Element.prototype.querySelectorAll; + var findOne = Element.prototype.querySelector; - var Polyfill = function () { - // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached - var defaultPreventedPreservedOnDispatch = function () { - var e = new CustomEvent('Bootstrap', { - cancelable: true - }); - var element = document.createElement('div'); - element.addEventListener('Bootstrap', function () { - return null; - }); - e.preventDefault(); - element.dispatchEvent(e); - return e.defaultPrevented; - }(); + var createCustomEvent = function createCustomEvent(eventName, params) { + var cEvent = new CustomEvent(eventName, params); + return cEvent; + }; + + if (typeof window.CustomEvent !== 'function') { + createCustomEvent = function createCustomEvent(eventName, params) { + params = params || { + bubbles: false, + cancelable: false, + detail: null + }; + var evt = document.createEvent('CustomEvent'); + evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail); + return evt; + }; + } - var find = Element.prototype.querySelectorAll; - var findOne = Element.prototype.querySelector; - var scopeSelectorRegex = /:scope\b/; + var workingDefaultPrevented = function () { + var e = document.createEvent('CustomEvent'); + e.initEvent('Bootstrap', true, true); + e.preventDefault(); + return e.defaultPrevented; + }(); - var supportScopeQuery = function () { - var element = document.createElement('div'); + if (!workingDefaultPrevented) { + var origPreventDefault = Event.prototype.preventDefault; - try { - element.querySelectorAll(':scope *'); - } catch (error) { - return false; + Event.prototype.preventDefault = function () { + if (!this.cancelable) { + return; } - return true; - }(); + origPreventDefault.call(this); + Object.defineProperty(this, 'defaultPrevented', { + get: function get() { + return true; + }, + configurable: true + }); + }; + } // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached - if (!supportScopeQuery) { - find = function find(selector) { - if (!scopeSelectorRegex.test(selector)) { - return this.querySelectorAll(selector); - } - var hasId = Boolean(this.id); + var defaultPreventedPreservedOnDispatch = function () { + var e = createCustomEvent('Bootstrap', { + cancelable: true + }); + var element = document.createElement('div'); + element.addEventListener('Bootstrap', function () { + return null; + }); + e.preventDefault(); + element.dispatchEvent(e); + return e.defaultPrevented; + }(); - if (!hasId) { - this.id = getUID('scope'); - } + if (!matches) { + matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; + } - var nodeList = null; + if (!closest) { + closest = function closest(selector) { + var element = this; - try { - selector = selector.replace(scopeSelectorRegex, "#" + this.id); - nodeList = this.querySelectorAll(selector); - } finally { - if (!hasId) { - this.removeAttribute('id'); - } + do { + if (matches.call(element, selector)) { + return element; } - return nodeList; - }; + element = element.parentElement || element.parentNode; + } while (element !== null && element.nodeType === 1); - findOne = function findOne(selector) { - if (!scopeSelectorRegex.test(selector)) { - return this.querySelector(selector); - } + return null; + }; + } - var matches = find.call(this, selector); + var scopeSelectorRegex = /:scope\b/; - if (typeof matches[0] !== 'undefined') { - return matches[0]; - } + var supportScopeQuery = function () { + var element = document.createElement('div'); - return null; - }; + try { + element.querySelectorAll(':scope *'); + } catch (error) { + return false; } - return { - defaultPreventedPreservedOnDispatch: defaultPreventedPreservedOnDispatch, - find: find, - findOne: findOne - }; + return true; }(); + if (!supportScopeQuery) { + find = function find(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelectorAll(selector); + } + + var hasId = Boolean(this.id); + + if (!hasId) { + this.id = getUID('scope'); + } + + var nodeList = null; + + try { + selector = selector.replace(scopeSelectorRegex, "#" + this.id); + nodeList = this.querySelectorAll(selector); + } finally { + if (!hasId) { + this.removeAttribute('id'); + } + } + + return nodeList; + }; + + findOne = function findOne(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelector(selector); + } + + var matches = find.call(this, selector); + + if (typeof matches[0] !== 'undefined') { + return matches[0]; + } + + return null; + }; + } + /** * -------------------------------------------------------------------------- * Bootstrap (v4.3.1): dom/eventHandler.js @@ -470,10 +524,8 @@ delegationSelector = null; } - var uidList = Object.keys(events); - - for (var i = 0; i < uidList.length; i++) { - var uid = uidList[i]; + for (var _i = 0, _Object$keys = Object.keys(events); _i < _Object$keys.length; _i++) { + var uid = _Object$keys[_i]; var event = events[uid]; if (event.originalHandler === handler && event.delegationSelector === delegationSelector) { @@ -632,7 +684,7 @@ evt = document.createEvent('HTMLEvents'); evt.initEvent(typeEvent, bubbles, true); } else { - evt = new CustomEvent(event, { + evt = createCustomEvent(event, { bubbles: bubbles, cancelable: true }); @@ -652,7 +704,7 @@ if (defaultPrevented) { evt.preventDefault(); - if (!Polyfill.defaultPreventedPreservedOnDispatch) { + if (!defaultPreventedPreservedOnDispatch) { Object.defineProperty(evt, 'defaultPrevented', { get: function get() { return true; @@ -685,14 +737,12 @@ * ------------------------------------------------------------------------ */ - var findFn = Polyfill.find, - _findOne = Polyfill.findOne; var NODE_TEXT = 3; var SelectorEngine = { - matches: function matches(element, selector) { - return element.matches(selector); + matches: function matches$1(element, selector) { + return matches.call(element, selector); }, - find: function find(selector, element) { + find: function find$1(selector, element) { if (element === void 0) { element = document.documentElement; } @@ -701,9 +751,9 @@ return null; } - return findFn.call(element, selector); + return find.call(element, selector); }, - findOne: function findOne(selector, element) { + findOne: function findOne$1(selector, element) { if (element === void 0) { element = document.documentElement; } @@ -712,7 +762,7 @@ return null; } - return _findOne.call(element, selector); + return findOne.call(element, selector); }, children: function children(element, selector) { var _this = this; @@ -744,12 +794,12 @@ return parents; }, - closest: function closest(element, selector) { + closest: function closest$1(element, selector) { if (typeof selector !== 'string') { return null; } - return element.closest(selector); + return closest.call(element, selector); }, prev: function prev(element, selector) { if (typeof selector !== 'string') { @@ -1098,11 +1148,17 @@ }); EventHandler.on(document, Event$2.FOCUS_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) { var button = SelectorEngine.closest(event.target, Selector$1.BUTTON); - button.classList.add(ClassName$1.FOCUS); + + if (button) { + button.classList.add(ClassName$1.FOCUS); + } }); EventHandler.on(document, Event$2.BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) { var button = SelectorEngine.closest(event.target, Selector$1.BUTTON); - button.classList.remove(ClassName$1.FOCUS); + + if (button) { + button.classList.remove(ClassName$1.FOCUS); + } }); /** * ------------------------------------------------------------------------ @@ -1421,7 +1477,8 @@ return; } - var direction = absDeltax / this.touchDeltaX; // swipe left + var direction = absDeltax / this.touchDeltaX; + this.touchDeltaX = 0; // swipe left if (direction > 0) { this.prev(); @@ -5088,7 +5145,9 @@ EventHandler.trigger(_this._element, Event$b.SHOWN); if (_this._config.autohide) { - _this.hide(); + _this._timeout = setTimeout(function () { + _this.hide(); + }, _this._config.delay); } }; @@ -5105,7 +5164,7 @@ } }; - _proto.hide = function hide(withoutTimeout) { + _proto.hide = function hide() { var _this2 = this; if (!this._element.classList.contains(ClassName$a.SHOW)) { @@ -5114,12 +5173,20 @@ EventHandler.trigger(this._element, Event$b.HIDE); - if (withoutTimeout) { - this._close(); + var complete = function complete() { + _this2._element.classList.add(ClassName$a.HIDE); + + EventHandler.trigger(_this2._element, Event$b.HIDDEN); + }; + + this._element.classList.remove(ClassName$a.SHOW); + + if (this._config.animation) { + var transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, TRANSITION_END, complete); + emulateTransitionEnd(this._element, transitionDuration); } else { - this._timeout = setTimeout(function () { - _this2._close(); - }, this._config.delay); + complete(); } }; @@ -5148,28 +5215,8 @@ var _this3 = this; EventHandler.on(this._element, Event$b.CLICK_DISMISS, Selector$a.DATA_DISMISS, function () { - return _this3.hide(true); + return _this3.hide(); }); - }; - - _proto._close = function _close() { - var _this4 = this; - - var complete = function complete() { - _this4._element.classList.add(ClassName$a.HIDE); - - EventHandler.trigger(_this4._element, Event$b.HIDDEN); - }; - - this._element.classList.remove(ClassName$a.SHOW); - - if (this._config.animation) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); - emulateTransitionEnd(this._element, transitionDuration); - } else { - complete(); - } } // Static ; diff --git a/dist/js/bootstrap.js.map b/dist/js/bootstrap.js.map index 2eb6635691..d08df27f1d 100644 --- a/dist/js/bootstrap.js.map +++ b/dist/js/bootstrap.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n })()\n\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n }\n\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!Polyfill.defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","matches","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","NODE_TEXT","SelectorEngine","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast","withoutTimeout","_close"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"bootstrap.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n for (const uid of Object.keys(events)) {\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast"],"mappings":"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"}
\ No newline at end of file diff --git a/dist/js/bootstrap.min.js b/dist/js/bootstrap.min.js index 5b8b5a8e46..3345b50bb0 100644 --- a/dist/js/bootstrap.min.js +++ b/dist/js/bootstrap.min.js @@ -3,5 +3,5 @@ * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("popper.js")):"function"==typeof define&&define.amd?define(["popper.js"],e):(t=t||self).bootstrap=e(t.Popper)}(this,function(t){"use strict";function e(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function n(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),o.forEach(function(e){i(t,e,n[e])})}return t}t=t&&t.hasOwnProperty("default")?t.default:t;var s,r,a,l,c,u,h,f,d="transitionend",g=window.jQuery,_=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},p=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},m=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),s=parseFloat(i);return o||s?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},v=function(t){t.dispatchEvent(new Event(d))},E=function(t){return(t[0]||t).nodeType},y=function(t,e){var n=!1,i=e+5;t.addEventListener(d,function e(){n=!0,t.removeEventListener(d,e)}),setTimeout(function(){n||v(t)},i)},b=function(t,e,n){Object.keys(n).forEach(function(i){var o,s=n[i],r=e[i],a=r&&E(r)?"element":(o=r,{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(s).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+s+'".')})},D=function(t){return t?[].slice.call(t):[]},T=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},I=function(){return function(){}},A=function(t){return t.offsetHeight},S=(s={},r=1,{set:function(t,e,n){void 0===t.key&&(t.key={key:e,id:r},r++),s[t.key.id]=n},get:function(t,e){if(!t||void 0===t.key)return null;var n=t.key;return n.key===e?s[n.id]:null},delete:function(t,e){if(void 0!==t.key){var n=t.key;n.key===e&&(delete s[n.id],delete t.key)}}}),w={setData:function(t,e,n){S.set(t,e,n)},getData:function(t,e){return S.get(t,e)},removeData:function(t,e){S.delete(t,e)}},L=(a=new CustomEvent("Bootstrap",{cancelable:!0}),(l=document.createElement("div")).addEventListener("Bootstrap",function(){return null}),a.preventDefault(),l.dispatchEvent(a),c=a.defaultPrevented,u=Element.prototype.querySelectorAll,h=Element.prototype.querySelector,f=/:scope\b/,function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0}()||(u=function(t){if(!f.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=_("scope"));var n=null;try{t=t.replace(f,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},h=function(t){if(!f.test(t))return this.querySelector(t);var e=u.call(this,t);return void 0!==e[0]?e[0]:null}),{defaultPreventedPreservedOnDispatch:c,find:u,findOne:h}),O=/[^.]*(?=\..*)\.|.*/,C=/\..*/,N=/^key/,k=/::\d+$/,P={},H=1,j={mouseenter:"mouseover",mouseleave:"mouseout"},M=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function R(t,e){return e&&e+"::"+H++||t.uidEvent||H++}function W(t){var e=R(t);return t.uidEvent=e,P[e]=P[e]||{},P[e]}function x(t,e){null===t.which&&N.test(t.type)&&(t.which=null===t.charCode?t.keyCode:t.charCode),t.delegateTarget=e}function U(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0;o<i.length;o++){var s=i[o],r=t[s];if(r.originalHandler===e&&r.delegationSelector===n)return t[s]}return null}function K(t,e,n){var i="string"==typeof e,o=i?n:e,s=t.replace(C,""),r=j[s];return r&&(s=r),M.indexOf(s)>-1||(s=t),[i,o,s]}function V(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var s=K(e,n,i),r=s[0],a=s[1],l=s[2],c=W(t),u=c[l]||(c[l]={}),h=U(u,a,r?n:null);if(h)h.oneOff=h.oneOff&&o;else{var f=R(a,e.replace(O,"")),d=r?function(t,e,n){return function i(o){for(var s=t.querySelectorAll(e),r=o.target;r&&r!==this;r=r.parentNode)for(var a=s.length;a--;)if(s[a]===r)return x(o,r),i.oneOff&&F.off(t,o.type,n),n.apply(r,[o]);return null}}(t,n,i):function(t,e){return function n(i){return x(i,t),n.oneOff&&F.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=r?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=f,u[f]=d,t.addEventListener(l,d,r)}}}function B(t,e,n,i,o){var s=U(e[n],i,o);null!==s&&(t.removeEventListener(n,s,Boolean(o)),delete e[n][s.uidEvent])}var F={on:function(t,e,n,i){V(t,e,n,i,!1)},one:function(t,e,n,i){V(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=K(e,n,i),s=o[0],r=o[1],a=o[2],l=a!==e,c=W(t),u="."===e.charAt(0);if(void 0===r){u&&Object.keys(c).forEach(function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach(function(s){if(s.indexOf(i)>-1){var r=o[s];B(t,e,n,r.originalHandler,r.delegationSelector)}})}(t,c,n,e.substr(1))});var h=c[a]||{};Object.keys(h).forEach(function(n){var i=n.replace(k,"");if(!l||e.indexOf(i)>-1){var o=h[n];B(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;B(t,c,a,r,s?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(C,""),s=e!==o,r=M.indexOf(o)>-1,a=!0,l=!0,c=!1,u=null;return s&&void 0!==g&&(i=g.Event(e,n),g(t).trigger(i),a=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),c=i.isDefaultPrevented()),r?(u=document.createEvent("HTMLEvents")).initEvent(o,a,!0):u=new CustomEvent(e,{bubbles:a,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})}),c&&(u.preventDefault(),L.defaultPreventedPreservedOnDispatch||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},Q=L.find,Y=L.findOne,G={matches:function(t,e){return t.matches(e)},find:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:Q.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:Y.call(e,t)},children:function(t,e){var n=this;if("string"!=typeof e)return null;var i=D(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return"string"!=typeof e?null:t.closest(e)},prev:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},X="bs.alert",q="."+X,z={CLOSE:"close"+q,CLOSED:"closed"+q,CLICK_DATA_API:"click"+q+".data-api"},Z="alert",$="fade",J="show",tt=function(){function t(t){this._element=t,this._element&&w.setData(t,X,this)}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t));var n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},e.dispose=function(){w.removeData(this._element,X),this._element=null},e._getRootElement=function(t){var e=p(t),n=!1;return e&&(n=G.findOne(e)),n||(n=G.closest(t,"."+Z)),n},e._triggerCloseEvent=function(t){return F.trigger(t,z.CLOSE)},e._removeElement=function(t){var e=this;if(t.classList.remove(J),t.classList.contains($)){var n=m(t);F.one(t,d,function(n){return e._destroyElement(t,n)}),y(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),F.trigger(t,z.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,X);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return w.getData(t,X)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(F.on(document,z.CLICK_DATA_API,'[data-dismiss="alert"]',tt._handleDismiss(new tt)),void 0!==g){var et=g.fn.alert;g.fn.alert=tt._jQueryInterface,g.fn.alert.Constructor=tt,g.fn.alert.noConflict=function(){return g.fn.alert=et,tt._jQueryInterface}}var nt="bs.button",it="."+nt,ot="active",st="btn",rt="focus",at='[data-toggle^="button"]',lt='[data-toggle="buttons"]',ct='input:not([type="hidden"])',ut=".active",ht=".btn",ft={CLICK_DATA_API:"click"+it+".data-api",FOCUS_DATA_API:"focus"+it+".data-api",BLUR_DATA_API:"blur"+it+".data-api"},dt=function(){function t(t){this._element=t,w.setData(t,nt,this)}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=G.closest(this._element,lt);if(n){var i=G.findOne(ct,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(ot))t=!1;else{var o=G.findOne(ut,n);o&&o.classList.remove(ot)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(ot),F.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(ot)),t&&this._element.classList.toggle(ot)},e.dispose=function(){w.removeData(this._element,nt),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,nt);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return w.getData(t,nt)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(F.on(document,ft.CLICK_DATA_API,at,function(t){t.preventDefault();var e=t.target;e.classList.contains(st)||(e=G.closest(e,ht));var n=w.getData(e,nt);n||(n=new dt(e),w.setData(e,nt,n)),n.toggle()}),F.on(document,ft.FOCUS_DATA_API,at,function(t){G.closest(t.target,ht).classList.add(rt)}),F.on(document,ft.BLUR_DATA_API,at,function(t){G.closest(t.target,ht).classList.remove(rt)}),void 0!==g){var gt=g.fn.button;g.fn.button=dt._jQueryInterface,g.fn.button.Constructor=dt,g.fn.button.noConflict=function(){return g.fn.button=gt,dt._jQueryInterface}}function _t(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function pt(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var mt={setDataAttribute:function(t,e,n){t.setAttribute("data-"+pt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+pt(e))},getDataAttributes:function(t){if(!t)return{};var e=o({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=_t(e[t])}),e},getDataAttribute:function(t,e){return _t(t.getAttribute("data-"+pt(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},vt="carousel",Et="bs.carousel",yt="."+Et,bt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Dt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Tt="next",It="prev",At="left",St="right",wt={SLIDE:"slide"+yt,SLID:"slid"+yt,KEYDOWN:"keydown"+yt,MOUSEENTER:"mouseenter"+yt,MOUSELEAVE:"mouseleave"+yt,TOUCHSTART:"touchstart"+yt,TOUCHMOVE:"touchmove"+yt,TOUCHEND:"touchend"+yt,POINTERDOWN:"pointerdown"+yt,POINTERUP:"pointerup"+yt,DRAG_START:"dragstart"+yt,LOAD_DATA_API:"load"+yt+".data-api",CLICK_DATA_API:"click"+yt+".data-api"},Lt="carousel",Ot="active",Ct="slide",Nt="carousel-item-right",kt="carousel-item-left",Pt="carousel-item-next",Ht="carousel-item-prev",jt="pointer-event",Mt={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},Rt={TOUCH:"touch",PEN:"pen"},Wt=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=G.findOne(Mt.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),w.setData(t,Et,this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(Tt)},e.nextWhenVisible=function(){!document.hidden&&T(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide(It)},e.pause=function(t){t||(this._isPaused=!0),G.findOne(Mt.NEXT_PREV,this._element)&&(v(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=G.findOne(Mt.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)F.one(this._element,wt.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?Tt:It;this._slide(i,this._items[t])}},e.dispose=function(){F.off(this._element,yt),w.removeData(this._element,Et),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=o({},bt,t),b(vt,t,Dt),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&F.on(this._element,wt.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(F.on(this._element,wt.MOUSEENTER,function(e){return t.pause(e)}),F.on(this._element,wt.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&Rt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&Rt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.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))};D(G.find(Mt.ITEM_IMG,this._element)).forEach(function(t){F.on(t,wt.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(F.on(this._element,wt.POINTERDOWN,function(t){return e(t)}),F.on(this._element,wt.POINTERUP,function(t){return n(t)}),this._element.classList.add(jt)):(F.on(this._element,wt.TOUCHSTART,function(t){return e(t)}),F.on(this._element,wt.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),F.on(this._element,wt.TOUCHEND,function(t){return n(t)}))}},e._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()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?D(G.find(Mt.ITEM,t.parentNode)):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===Tt,i=t===It,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+(t===It?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(G.findOne(Mt.ACTIVE_ITEM,this._element));return F.trigger(this._element,wt.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=G.find(Mt.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(Ot);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(Ot)}},e._slide=function(t,e){var n,i,o,s=this,r=G.findOne(Mt.ACTIVE_ITEM,this._element),a=this._getItemIndex(r),l=e||r&&this._getItemByDirection(t,r),c=this._getItemIndex(l),u=Boolean(this._interval);if(t===Tt?(n=kt,i=Pt,o=At):(n=Nt,i=Ht,o=St),l&&l.classList.contains(Ot))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).defaultPrevented&&r&&l){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l),this._element.classList.contains(Ct)){l.classList.add(i),A(l),r.classList.add(n),l.classList.add(n);var h=parseInt(l.getAttribute("data-interval"),10);h?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=h):this._config.interval=this._config.defaultInterval||this._config.interval;var f=m(r);F.one(r,d,function(){l.classList.remove(n),l.classList.remove(i),l.classList.add(Ot),r.classList.remove(Ot),r.classList.remove(i),r.classList.remove(n),s._isSliding=!1,setTimeout(function(){F.trigger(s._element,wt.SLID,{relatedTarget:l,direction:o,from:a,to:c})},0)}),y(r,f)}else r.classList.remove(Ot),l.classList.add(Ot),this._isSliding=!1,F.trigger(this._element,wt.SLID,{relatedTarget:l,direction:o,from:a,to:c});u&&this.cycle()}},t._carouselInterface=function(e,n){var i=w.getData(e,Et),s=o({},bt,mt.getDataAttributes(e));"object"==typeof n&&(s=o({},s,n));var r="string"==typeof n?n:s.slide;if(i||(i=new t(e,s)),"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 s.interval&&s.ride&&(i.pause(),i.cycle())},t._jQueryInterface=function(e){return this.each(function(){t._carouselInterface(this,e)})},t._dataApiClickHandler=function(e){var n=p(this);if(n){var i=G.findOne(n);if(i&&i.classList.contains(Lt)){var s=o({},mt.getDataAttributes(i),mt.getDataAttributes(this)),r=this.getAttribute("data-slide-to");r&&(s.interval=!1),t._carouselInterface(i,s),r&&w.getData(i,Et).to(r),e.preventDefault()}}},t._getInstance=function(t){return w.getData(t,Et)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return bt}}]),t}();if(F.on(document,wt.CLICK_DATA_API,Mt.DATA_SLIDE,Wt._dataApiClickHandler),F.on(window,wt.LOAD_DATA_API,function(){for(var t=D(G.find(Mt.DATA_RIDE)),e=0,n=t.length;e<n;e++)Wt._carouselInterface(t[e],w.getData(t[e],Et))}),void 0!==g){var xt=g.fn[vt];g.fn[vt]=Wt._jQueryInterface,g.fn[vt].Constructor=Wt,g.fn[vt].noConflict=function(){return g.fn[vt]=xt,Wt._jQueryInterface}}var Ut="collapse",Kt="bs.collapse",Vt="."+Kt,Bt={toggle:!0,parent:""},Ft={toggle:"boolean",parent:"(string|element)"},Qt={SHOW:"show"+Vt,SHOWN:"shown"+Vt,HIDE:"hide"+Vt,HIDDEN:"hidden"+Vt,CLICK_DATA_API:"click"+Vt+".data-api"},Yt="show",Gt="collapse",Xt="collapsing",qt="collapsed",zt="width",Zt="height",$t={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},Jt=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=D(G.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=D(G.find($t.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var s=n[i],r=p(s),a=D(G.find(r)).filter(function(e){return e===t});null!==r&&a.length&&(this._selector=r,this._triggerArray.push(s))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),w.setData(t,Kt,this)}var e=t.prototype;return e.toggle=function(){this._element.classList.contains(Yt)?this.hide():this.show()},e.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Yt)){var n,i;this._parent&&0===(n=D(G.find($t.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(Gt)})).length&&(n=null);var o=G.findOne(this._selector);if(n){var s=n.filter(function(t){return o!==t});if((i=s[0]?w.getData(s[0],Kt):null)&&i._isTransitioning)return}if(!F.trigger(this._element,Qt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||w.setData(e,Kt,null)});var r=this._getDimension();this._element.classList.remove(Gt),this._element.classList.add(Xt),this._element.style[r]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(qt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var a="scroll"+(r[0].toUpperCase()+r.slice(1)),l=m(this._element);F.one(this._element,d,function(){e._element.classList.remove(Xt),e._element.classList.add(Gt),e._element.classList.add(Yt),e._element.style[r]="",e.setTransitioning(!1),F.trigger(e._element,Qt.SHOWN)}),y(this._element,l),this._element.style[r]=this._element[a]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Yt)&&!F.trigger(this._element,Qt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",A(this._element),this._element.classList.add(Xt),this._element.classList.remove(Gt),this._element.classList.remove(Yt);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],s=p(o);if(null!==s)G.findOne(s).classList.contains(Yt)||(o.classList.add(qt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var r=m(this._element);F.one(this._element,d,function(){t.setTransitioning(!1),t._element.classList.remove(Xt),t._element.classList.add(Gt),F.trigger(t._element,Qt.HIDDEN)}),y(this._element,r)}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){w.removeData(this._element,Kt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=o({},Bt,t)).toggle=Boolean(t.toggle),b(Ut,t,Ft),t},e._getDimension=function(){return this._element.classList.contains(zt)?zt:Zt},e._getParent=function(){var e=this,n=this._config.parent;E(n)?void 0===n.jquery&&void 0===n[0]||(n=n[0]):n=G.findOne(n);var i='[data-toggle="collapse"][data-parent="'+n+'"]';return D(G.find(i,n)).forEach(function(n){e._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])}),n},e._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Yt);e.length&&e.forEach(function(t){n?t.classList.remove(qt):t.classList.add(qt),t.setAttribute("aria-expanded",n)})}},t._getTargetFromElement=function(t){var e=p(t);return e?G.findOne(e):null},t._collapseInterface=function(e,n){var i=w.getData(e,Kt),s=o({},Bt,mt.getDataAttributes(e),"object"==typeof n&&n?n:{});if(!i&&s.toggle&&/show|hide/.test(n)&&(s.toggle=!1),i||(i=new t(e,s)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._collapseInterface(this,e)})},t._getInstance=function(t){return w.getData(t,Kt)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Bt}}]),t}();if(F.on(document,Qt.CLICK_DATA_API,$t.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=mt.getDataAttributes(this),n=p(this);D(G.find(n)).forEach(function(t){var n,i=w.getData(t,Kt);i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,Jt._collapseInterface(t,n)})}),void 0!==g){var te=g.fn[Ut];g.fn[Ut]=Jt._jQueryInterface,g.fn[Ut].Constructor=Jt,g.fn[Ut].noConflict=function(){return g.fn[Ut]=te,Jt._jQueryInterface}}var ee="dropdown",ne="bs.dropdown",ie="."+ne,oe=new RegExp("38|40|27"),se={HIDE:"hide"+ie,HIDDEN:"hidden"+ie,SHOW:"show"+ie,SHOWN:"shown"+ie,CLICK:"click"+ie,CLICK_DATA_API:"click"+ie+".data-api",KEYDOWN_DATA_API:"keydown"+ie+".data-api",KEYUP_DATA_API:"keyup"+ie+".data-api"},re="disabled",ae="show",le="dropup",ce="dropright",ue="dropleft",he="dropdown-menu-right",fe="position-static",de='[data-toggle="dropdown"]',ge=".dropdown form",_e=".dropdown-menu",pe=".navbar-nav",me=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",ve="top-start",Ee="top-end",ye="bottom-start",be="bottom-end",De="right-start",Te="left-start",Ie={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Ae={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Se=function(){function e(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),w.setData(t,ne,this)}var i=e.prototype;return i.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(re)){var n=e._getParentFromElement(this._element),i=this._menu.classList.contains(ae);if(e._clearMenus(),!i){var o={relatedTarget:this._element};if(!F.trigger(n,se.SHOW,o).defaultPrevented){if(!this._inNavbar){if(void 0===t)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var s=this._element;"parent"===this._config.reference?s=n:E(this._config.reference)&&(s=this._config.reference,void 0!==this._config.reference.jquery&&(s=this._config.reference[0])),"scrollParent"!==this._config.boundary&&n.classList.add(fe),this._popper=new t(s,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!D(G.closest(n,pe)).length&&D(document.body.children).forEach(function(t){return F.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),mt.toggleClass(this._menu,ae),mt.toggleClass(n,ae),F.trigger(n,se.SHOWN,o)}}}},i.show=function(){if(!(this._element.disabled||this._element.classList.contains(re)||this._menu.classList.contains(ae))){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};F.trigger(t,se.SHOW,n).defaultPrevented||(mt.toggleClass(this._menu,ae),mt.toggleClass(t,ae),F.trigger(t,se.SHOWN,n))}},i.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(re)&&this._menu.classList.contains(ae)){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};F.trigger(t,se.HIDE,n).defaultPrevented||(mt.toggleClass(this._menu,ae),mt.toggleClass(t,ae),F.trigger(t,se.HIDDEN,n))}},i.dispose=function(){w.removeData(this._element,ne),F.off(this._element,ie),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},i._addEventListeners=function(){var t=this;F.on(this._element,se.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},i._getConfig=function(t){return t=o({},this.constructor.Default,mt.getDataAttributes(this._element),t),b(ee,t,this.constructor.DefaultType),t},i._getMenuElement=function(){if(!this._menu){var t=e._getParentFromElement(this._element);t&&(this._menu=G.findOne(_e,t))}return this._menu},i._getPlacement=function(){var t=this._element.parentNode,e=ye;return t.classList.contains(le)?(e=ve,this._menu.classList.contains(he)&&(e=Ee)):t.classList.contains(ce)?e=De:t.classList.contains(ue)?e=Te:this._menu.classList.contains(he)&&(e=be),e},i._detectNavbar=function(){return Boolean(G.closest(this._element,".navbar"))},i._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=o({},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}),t},e._dropdownInterface=function(t,n){var i=w.getData(t,ne);if(i||(i=new e(t,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e._jQueryInterface=function(t){return this.each(function(){e._dropdownInterface(this,t)})},e._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=D(G.find(de)),i=0,o=n.length;i<o;i++){var s=e._getParentFromElement(n[i]),r=w.getData(n[i],ne),a={relatedTarget:n[i]};if(t&&"click"===t.type&&(a.clickEvent=t),r){var l=r._menu;if(s.classList.contains(ae))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&s.contains(t.target)))F.trigger(s,se.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&D(document.body.children).forEach(function(t){return F.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(ae),s.classList.remove(ae),F.trigger(s,se.HIDDEN,a))}}},e._getParentFromElement=function(t){var e,n=p(t);return n&&(e=G.findOne(n)),e||t.parentNode},e._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||G.closest(t.target,_e))):oe.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(re))){var n=e._getParentFromElement(this),i=n.classList.contains(ae);if(!i||i&&(27===t.which||32===t.which))return 27===t.which&&F.trigger(G.findOne(de,n),"focus"),void e._clearMenus();var o=D(G.find(me,n));if(o.length){var s=o.indexOf(t.target);38===t.which&&s>0&&s--,40===t.which&&s<o.length-1&&s++,s<0&&(s=0),o[s].focus()}}},e._getInstance=function(t){return w.getData(t,ne)},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ie}},{key:"DefaultType",get:function(){return Ae}}]),e}();if(F.on(document,se.KEYDOWN_DATA_API,de,Se._dataApiKeydownHandler),F.on(document,se.KEYDOWN_DATA_API,_e,Se._dataApiKeydownHandler),F.on(document,se.CLICK_DATA_API,Se._clearMenus),F.on(document,se.KEYUP_DATA_API,Se._clearMenus),F.on(document,se.CLICK_DATA_API,de,function(t){t.preventDefault(),t.stopPropagation(),Se._dropdownInterface(this,"toggle")}),F.on(document,se.CLICK_DATA_API,ge,function(t){return t.stopPropagation()}),void 0!==g){var we=g.fn[ee];g.fn[ee]=Se._jQueryInterface,g.fn[ee].Constructor=Se,g.fn[ee].noConflict=function(){return g.fn[ee]=we,Se._jQueryInterface}}var Le="bs.modal",Oe="."+Le,Ce={backdrop:!0,keyboard:!0,focus:!0,show:!0},Ne={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},ke={HIDE:"hide"+Oe,HIDDEN:"hidden"+Oe,SHOW:"show"+Oe,SHOWN:"shown"+Oe,FOCUSIN:"focusin"+Oe,RESIZE:"resize"+Oe,CLICK_DISMISS:"click.dismiss"+Oe,KEYDOWN_DISMISS:"keydown.dismiss"+Oe,MOUSEUP_DISMISS:"mouseup.dismiss"+Oe,MOUSEDOWN_DISMISS:"mousedown.dismiss"+Oe,CLICK_DATA_API:"click"+Oe+".data-api"},Pe="modal-dialog-scrollable",He="modal-scrollbar-measure",je="modal-backdrop",Me="modal-open",Re="fade",We="show",xe={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Ue=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=G.findOne(xe.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,w.setData(t,Le,this)}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(Re)&&(this._isTransitioning=!0);var n=F.trigger(this._element,ke.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),F.on(this._element,ke.CLICK_DISMISS,xe.DATA_DISMISS,function(t){return e.hide(t)}),F.on(this._dialog,ke.MOUSEDOWN_DISMISS,function(){F.one(e._element,ke.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},e.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=F.trigger(this._element,ke.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(Re);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),F.off(document,ke.FOCUSIN),this._element.classList.remove(We),F.off(this._element,ke.CLICK_DISMISS),F.off(this._dialog,ke.MOUSEDOWN_DISMISS),i){var o=m(this._element);F.one(this._element,d,function(t){return e._hideModal(t)}),y(this._element,o)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return F.off(t,Oe)}),F.off(document,ke.FOCUSIN),w.removeData(this._element,Le),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=o({},Ce,t),b("modal",t,Ne),t},e._showElement=function(t){var e=this,n=this._element.classList.contains(Re);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(Pe)?G.findOne(xe.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&A(this._element),this._element.classList.add(We),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,F.trigger(e._element,ke.SHOWN,{relatedTarget:t})};if(n){var o=m(this._dialog);F.one(this._dialog,d,i),y(this._dialog,o)}else i()},e._enforceFocus=function(){var t=this;F.off(document,ke.FOCUSIN),F.on(document,ke.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?F.on(this._element,ke.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||F.off(this._element,ke.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?F.on(window,ke.RESIZE,function(e){return t.handleUpdate(e)}):F.off(window,ke.RESIZE)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(Me),t._resetAdjustments(),t._resetScrollbar(),F.trigger(t._element,ke.HIDDEN)})},e._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=this._element.classList.contains(Re)?Re:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=je,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),F.on(this._element,ke.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&A(this._backdrop),this._backdrop.classList.add(We),!t)return;if(!n)return void t();var i=m(this._backdrop);F.one(this._backdrop,d,t),y(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(We);var o=function(){e._removeBackdrop(),t&&t()};if(this._element.classList.contains(Re)){var s=m(this._backdrop);F.one(this._backdrop,d,o),y(this._backdrop,s)}else o()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){D(G.find(xe.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];mt.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),D(G.find(xe.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];mt.setDataAttribute(e,"margin-right",n),e.style.marginRight=parseFloat(i)-t._scrollbarWidth+"px"});var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];mt.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(Me)},e._resetScrollbar=function(){D(G.find(xe.FIXED_CONTENT)).forEach(function(t){var e=mt.getDataAttribute(t,"padding-right");void 0!==e&&(mt.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),D(G.find(""+xe.STICKY_CONTENT)).forEach(function(t){var e=mt.getDataAttribute(t,"margin-right");void 0!==e&&(mt.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=mt.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(mt.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className=He,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each(function(){var i=w.getData(this,Le),s=o({},Ce,mt.getDataAttributes(this),"object"==typeof e&&e?e:{});if(i||(i=new t(this,s)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else s.show&&i.show(n)})},t._getInstance=function(t){return w.getData(t,Le)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ce}}]),t}();if(F.on(document,ke.CLICK_DATA_API,xe.DATA_TOGGLE,function(t){var e,n=this,i=p(this);i&&(e=G.findOne(i));var s=w.getData(e,Le)?"toggle":o({},mt.getDataAttributes(e),mt.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),F.one(e,ke.SHOW,function(t){t.defaultPrevented||F.one(e,ke.HIDDEN,function(){T(n)&&n.focus()})});var r=w.getData(e,Le);r||(r=new Ue(e,s)),r.show(this)}),void 0!==g){var Ke=g.fn.modal;g.fn.modal=Ue._jQueryInterface,g.fn.modal.Constructor=Ue,g.fn.modal.noConflict=function(){return g.fn.modal=Ke,Ue._jQueryInterface}}var Ve=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Be=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Fe=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Qe=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Ve.indexOf(n)||Boolean(t.nodeValue.match(Be)||t.nodeValue.match(Fe));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,s=i.length;o<s;o++)if(n.match(i[o]))return!0;return!1},Ye={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Ge(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),s=D(i.body.querySelectorAll("*")),r=function(t,n){var i=s[t],r=i.nodeName.toLowerCase();if(-1===o.indexOf(r))return i.parentNode.removeChild(i),"continue";var a=D(i.attributes),l=[].concat(e["*"]||[],e[r]||[]);a.forEach(function(t){Qe(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=s.length;a<l;a++)r(a);return i.body.innerHTML}var Xe="tooltip",qe=new RegExp("(^|\\s)bs-tooltip\\S+","g"),ze=["sanitize","whiteList","sanitizeFn"],Ze={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},$e={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Je={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Ye},tn="show",en="out",nn={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"},on="fade",sn="show",rn=".tooltip-inner",an=".tooltip-arrow",ln="hover",cn="focus",un="click",hn="manual",fn=function(){function e(e,n){if(void 0===t)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=e,this.config=this._getConfig(n),this.tip=null,this._setListeners(),w.setData(e,this.constructor.DATA_KEY,this)}var i=e.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 e=this.constructor.DATA_KEY,n=w.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),w.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),w.removeData(this.element,this.constructor.DATA_KEY),F.off(this.element,this.constructor.EVENT_KEY),F.off(G.closest(this.element,".modal"),"hide.bs.modal"),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var e=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var n=F.trigger(this.element,this.constructor.Event.SHOW),i=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this.element),o=null===i?this.element.ownerDocument.documentElement.contains(this.element):i.contains(this.element);if(n.defaultPrevented||!o)return;var s=this.getTipElement(),r=_(this.constructor.NAME);s.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&s.classList.add(on);var a="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,l=this._getAttachment(a);this.addAttachmentClass(l);var c=this._getContainer();w.setData(s,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||c.appendChild(s),F.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new t(this.element,s,{placement:l,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:an},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),s.classList.add(sn),"ontouchstart"in document.documentElement&&D(document.body.children).forEach(function(t){F.on(t,"mouseover",function(){})});var u=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,F.trigger(e.element,e.constructor.Event.SHOWN),t===en&&e._leave(null,e)};if(this.tip.classList.contains(on)){var h=m(this.tip);F.one(this.tip,d,u),y(this.tip,h)}else u()}},i.hide=function(t){var e=this,n=this.getTipElement(),i=function(){e._hoverState!==tn&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),F.trigger(e.element,e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(!F.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(sn),"ontouchstart"in document.documentElement&&D(document.body.children).forEach(function(t){return F.off(t,"mouseover",I)}),this._activeTrigger[un]=!1,this._activeTrigger[cn]=!1,this._activeTrigger[ln]=!1,this.tip.classList.contains(on)){var o=m(n);F.one(n,d,i),y(n,o)}else i();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},i.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(G.findOne(rn,t),this.getTitle()),t.classList.remove(on),t.classList.remove(sn)},i.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&(e.nodeType||e.jquery)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Ge(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},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._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=o({},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:E(this.config.container)?this.config.container:G.findOne(this.config.container)},i._getAttachment=function(t){return $e[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)F.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==hn){var n=e===ln?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===ln?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;F.on(t.element,n,t.config.selector,function(e){return t._enter(e)}),F.on(t.element,i,t.config.selector,function(e){return t._leave(e)})}}),F.on(G.closest(this.element,".modal"),"hide.bs.modal",function(){t.element&&t.hide()}),this.config.selector?this.config=o({},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,e){var n=this.constructor.DATA_KEY;(e=e||w.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),w.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?cn:ln]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===tn?e._hoverState=tn:(clearTimeout(e._timeout),e._hoverState=tn,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===tn&&e.show()},e.config.delay.show):e.show())},i._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||w.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),w.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?cn:ln]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=en,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===en&&e.hide()},e.config.delay.hide):e.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){var e=mt.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==ze.indexOf(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=o({},this.constructor.Default,e,"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()),b(Xe,t,this.constructor.DefaultType),t.sanitize&&(t.template=Ge(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=this.getTipElement(),e=t.getAttribute("class").match(qe);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},i._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(on),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},e._jQueryInterface=function(t){return this.each(function(){var n=w.getData(this,"bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(t){return w.getData(t,"bs.tooltip")},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Je}},{key:"NAME",get:function(){return Xe}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return nn}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Ze}}]),e}();if(void 0!==g){var dn=g.fn.tooltip;g.fn.tooltip=fn._jQueryInterface,g.fn.tooltip.Constructor=fn,g.fn.tooltip.noConflict=function(){return g.fn.tooltip=dn,fn._jQueryInterface}}var gn="popover",_n=new RegExp("(^|\\s)bs-popover\\S+","g"),pn=o({},fn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),mn=o({},fn.DefaultType,{content:"(string|element|function)"}),vn="fade",En="show",yn=".popover-header",bn=".popover-body",Dn={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"},Tn=function(t){var e,i;function o(){return t.apply(this,arguments)||this}i=t,(e=o).prototype=Object.create(i.prototype),e.prototype.constructor=e,e.__proto__=i;var s=o.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},s.setContent=function(){var t=this.getTipElement();this.setElementContent(G.findOne(yn,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(G.findOne(bn,t),e),t.classList.remove(vn),t.classList.remove(En)},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(_n);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=w.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),w.setData(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o._getInstance=function(t){return w.getData(t,"bs.popover")},n(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return pn}},{key:"NAME",get:function(){return gn}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Dn}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return mn}}]),o}(fn);if(void 0!==g){var In=g.fn.popover;g.fn.popover=Tn._jQueryInterface,g.fn.popover.Constructor=Tn,g.fn.popover.noConflict=function(){return g.fn.popover=In,Tn._jQueryInterface}}var An="scrollspy",Sn="bs.scrollspy",wn="."+Sn,Ln={offset:10,method:"auto",target:""},On={offset:"number",method:"string",target:"(string|element)"},Cn={ACTIVATE:"activate"+wn,SCROLL:"scroll"+wn,LOAD_DATA_API:"load"+wn+".data-api"},Nn={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},kn={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},Pn="offset",Hn="position",jn=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+kn.NAV_LINKS+","+this._config.target+" "+kn.LIST_ITEMS+","+this._config.target+" ."+Nn.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,F.on(this._scrollElement,Cn.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),w.setData(t,Sn,this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Pn:Hn,n="auto"===this._config.method?e:this._config.method,i=n===Hn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),D(G.find(this._selector)).map(function(t){var e,o=p(t);if(o&&(e=G.findOne(o)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[mt[n](e).top+i,o]}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])})},e.dispose=function(){w.removeData(this._element,Sn),F.off(this._scrollElement,wn),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=o({},Ln,"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=_(An),t.target.id=e),t.target="#"+e}return b(An,t,On),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),n=G.findOne(e.join(","));n.classList.contains(Nn.DROPDOWN_ITEM)?(G.findOne(kn.DROPDOWN_TOGGLE,G.closest(n,kn.DROPDOWN)).classList.add(Nn.ACTIVE),n.classList.add(Nn.ACTIVE)):(n.classList.add(Nn.ACTIVE),G.parents(n,kn.NAV_LIST_GROUP).forEach(function(t){G.prev(t,kn.NAV_LINKS+", "+kn.LIST_ITEMS).forEach(function(t){return t.classList.add(Nn.ACTIVE)}),G.prev(t,kn.NAV_ITEMS).forEach(function(t){G.children(t,kn.NAV_LINKS).forEach(function(t){return t.classList.add(Nn.ACTIVE)})})})),F.trigger(this._scrollElement,Cn.ACTIVATE,{relatedTarget:t})},e._clear=function(){D(G.find(this._selector)).filter(function(t){return t.classList.contains(Nn.ACTIVE)}).forEach(function(t){return t.classList.remove(Nn.ACTIVE)})},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,Sn);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return w.getData(t,Sn)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ln}}]),t}();if(F.on(window,Cn.LOAD_DATA_API,function(){D(G.find(kn.DATA_SPY)).forEach(function(t){return new jn(t,mt.getDataAttributes(t))})}),void 0!==g){var Mn=g.fn[An];g.fn[An]=jn._jQueryInterface,g.fn[An].Constructor=jn,g.fn[An].noConflict=function(){return g.fn[An]=Mn,jn._jQueryInterface}}var Rn="bs.tab",Wn="."+Rn,xn={HIDE:"hide"+Wn,HIDDEN:"hidden"+Wn,SHOW:"show"+Wn,SHOWN:"shown"+Wn,CLICK_DATA_API:"click"+Wn+".data-api"},Un="dropdown-menu",Kn="active",Vn="disabled",Bn="fade",Fn="show",Qn=".dropdown",Yn=".nav, .list-group",Gn=".active",Xn=":scope > li > .active",qn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',zn=".dropdown-toggle",Zn=":scope > .dropdown-menu .active",$n=function(){function t(t){this._element=t,w.setData(this._element,Rn,this)}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Kn)||this._element.classList.contains(Vn))){var e,n,i=G.closest(this._element,Yn),o=p(this._element);if(i){var s="UL"===i.nodeName||"OL"===i.nodeName?Xn:Gn;n=(n=D(G.find(s,i)))[n.length-1]}var r=null;if(n&&(r=F.trigger(n,xn.HIDE,{relatedTarget:this._element})),!(F.trigger(this._element,xn.SHOW,{relatedTarget:n}).defaultPrevented||null!==r&&r.defaultPrevented)){o&&(e=G.findOne(o)),this._activate(this._element,i);var a=function(){F.trigger(n,xn.HIDDEN,{relatedTarget:t._element}),F.trigger(t._element,xn.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},e.dispose=function(){w.removeData(this._element,Rn),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?G.children(e,Gn):G.find(Xn,e))[0],s=n&&o&&o.classList.contains(Bn),r=function(){return i._transitionComplete(t,o,n)};if(o&&s){var a=m(o);o.classList.remove(Fn),F.one(o,d,r),y(o,a)}else r()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove(Kn);var i=G.findOne(Zn,e.parentNode);i&&i.classList.remove(Kn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(Kn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),A(t),t.classList.contains(Bn)&&t.classList.add(Fn),t.parentNode&&t.parentNode.classList.contains(Un))&&(G.closest(t,Qn)&&D(G.find(zn)).forEach(function(t){return t.classList.add(Kn)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,Rn)||new t(this);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return w.getData(t,Rn)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(F.on(document,xn.CLICK_DATA_API,qn,function(t){t.preventDefault(),(w.getData(this,Rn)||new $n(this)).show()}),void 0!==g){var Jn=g.fn.tab;g.fn.tab=$n._jQueryInterface,g.fn.tab.Constructor=$n,g.fn.tab.noConflict=function(){return g.fn.tab=Jn,$n._jQueryInterface}}var ti="bs.toast",ei="."+ti,ni={CLICK_DISMISS:"click.dismiss"+ei,HIDE:"hide"+ei,HIDDEN:"hidden"+ei,SHOW:"show"+ei,SHOWN:"shown"+ei},ii="fade",oi="hide",si="show",ri="showing",ai={animation:"boolean",autohide:"boolean",delay:"number"},li={animation:!0,autohide:!0,delay:500},ci='[data-dismiss="toast"]',ui=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),w.setData(t,ti,this)}var e=t.prototype;return e.show=function(){var t=this;F.trigger(this._element,ni.SHOW),this._config.animation&&this._element.classList.add(ii);var e=function(){t._element.classList.remove(ri),t._element.classList.add(si),F.trigger(t._element,ni.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove(oi),this._element.classList.add(ri),this._config.animation){var n=m(this._element);F.one(this._element,d,e),y(this._element,n)}else e()},e.hide=function(t){var e=this;this._element.classList.contains(si)&&(F.trigger(this._element,ni.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(si)&&this._element.classList.remove(si),F.off(this._element,ni.CLICK_DISMISS),w.removeData(this._element,ti),this._element=null,this._config=null},e._getConfig=function(t){return t=o({},li,mt.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),b("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;F.on(this._element,ni.CLICK_DISMISS,ci,function(){return t.hide(!0)})},e._close=function(){var t=this,e=function(){t._element.classList.add(oi),F.trigger(t._element,ni.HIDDEN)};if(this._element.classList.remove(si),this._config.animation){var n=m(this._element);F.one(this._element,d,e),y(this._element,n)}else e()},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,ti);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}})},t._getInstance=function(t){return w.getData(t,ti)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return ai}},{key:"Default",get:function(){return li}}]),t}();if(void 0!==g){var hi=g.fn.toast;g.fn.toast=ui._jQueryInterface,g.fn.toast.Constructor=ui,g.fn.toast.noConflict=function(){return g.fn.toast=hi,ui._jQueryInterface}}return{Alert:tt,Button:dt,Carousel:Wt,Collapse:Jt,Dropdown:Se,Modal:Ue,Popover:Tn,ScrollSpy:jn,Tab:$n,Toast:ui,Tooltip:fn}}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("popper.js")):"function"==typeof define&&define.amd?define(["popper.js"],e):(t=t||self).bootstrap=e(t.Popper)}(this,function(t){"use strict";function e(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function n(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),o.forEach(function(e){i(t,e,n[e])})}return t}t=t&&t.hasOwnProperty("default")?t.default:t;var r,s,a,l="transitionend",c=window.jQuery,u=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},f=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},h=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),r=parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},d=function(t){var e=document.createEvent("HTMLEvents");e.initEvent(l,!0,!0),t.dispatchEvent(e)},g=function(t){return(t[0]||t).nodeType},_=function(t,e){var n=!1,i=e+5;t.addEventListener(l,function e(){n=!0,t.removeEventListener(l,e)}),setTimeout(function(){n||d(t)},i)},p=function(t,e,n){Object.keys(n).forEach(function(i){var o,r=n[i],s=e[i],a=s&&g(s)?"element":(o=s,{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')})},m=function(t){return t?[].slice.call(t):[]},v=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},y=function(){return function(){}},E=function(t){return t.offsetHeight},b=(r={},s=1,{set:function(t,e,n){"undefined"==typeof t.key&&(t.key={key:e,id:s},s++),r[t.key.id]=n},get:function(t,e){if(!t||"undefined"==typeof t.key)return null;var n=t.key;return n.key===e?r[n.id]:null},delete:function(t,e){if("undefined"!=typeof t.key){var n=t.key;n.key===e&&(delete r[n.id],delete t.key)}}}),D={setData:function(t,e,n){b.set(t,e,n)},getData:function(t,e){return b.get(t,e)},removeData:function(t,e){b.delete(t,e)}},T=Element.prototype,I=T.matches,A=T.closest,S=Element.prototype.querySelectorAll,w=Element.prototype.querySelector,L=function(t,e){return new CustomEvent(t,e)};if("function"!=typeof window.CustomEvent&&(L=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}),!((a=document.createEvent("CustomEvent")).initEvent("Bootstrap",!0,!0),a.preventDefault(),a.defaultPrevented)){var C=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(C.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var O=function(){var t=L("Bootstrap",{cancelable:!0}),e=document.createElement("div");return e.addEventListener("Bootstrap",function(){return null}),t.preventDefault(),e.dispatchEvent(t),t.defaultPrevented}();I||(I=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),A||(A=function(t){var e=this;do{if(I.call(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null});var N=/:scope\b/;(function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0})()||(S=function(t){if(!N.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=u("scope"));var n=null;try{t=t.replace(N,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},w=function(t){if(!N.test(t))return this.querySelector(t);var e=S.call(this,t);return"undefined"!=typeof e[0]?e[0]:null});var k=/[^.]*(?=\..*)\.|.*/,P=/\..*/,H=/^key/,M=/::\d+$/,j={},R=1,W={mouseenter:"mouseover",mouseleave:"mouseout"},x=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function U(t,e){return e&&e+"::"+R++||t.uidEvent||R++}function K(t){var e=U(t);return t.uidEvent=e,j[e]=j[e]||{},j[e]}function V(t,e){null===t.which&&H.test(t.type)&&(t.which=null===t.charCode?t.keyCode:t.charCode),t.delegateTarget=e}function B(t,e,n){void 0===n&&(n=null);for(var i=0,o=Object.keys(t);i<o.length;i++){var r=o[i],s=t[r];if(s.originalHandler===e&&s.delegationSelector===n)return t[r]}return null}function F(t,e,n){var i="string"==typeof e,o=i?n:e,r=t.replace(P,""),s=W[r];return s&&(r=s),x.indexOf(r)>-1||(r=t),[i,o,r]}function Q(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var r=F(e,n,i),s=r[0],a=r[1],l=r[2],c=K(t),u=c[l]||(c[l]={}),f=B(u,a,s?n:null);if(f)f.oneOff=f.oneOff&&o;else{var h=U(a,e.replace(k,"")),d=s?function(t,e,n){return function i(o){for(var r=t.querySelectorAll(e),s=o.target;s&&s!==this;s=s.parentNode)for(var a=r.length;a--;)if(r[a]===s)return V(o,s),i.oneOff&&G.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return V(i,t),n.oneOff&&G.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=s?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=h,u[h]=d,t.addEventListener(l,d,s)}}}function Y(t,e,n,i,o){var r=B(e[n],i,o);null!==r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}var G={on:function(t,e,n,i){Q(t,e,n,i,!1)},one:function(t,e,n,i){Q(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=F(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=K(t),u="."===e.charAt(0);if("undefined"==typeof s){u&&Object.keys(c).forEach(function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach(function(r){if(r.indexOf(i)>-1){var s=o[r];Y(t,e,n,s.originalHandler,s.delegationSelector)}})}(t,c,n,e.substr(1))});var f=c[a]||{};Object.keys(f).forEach(function(n){var i=n.replace(M,"");if(!l||e.indexOf(i)>-1){var o=f[n];Y(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;Y(t,c,a,s,r?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(P,""),r=e!==o,s=x.indexOf(o)>-1,a=!0,l=!0,u=!1,f=null;return r&&"undefined"!=typeof c&&(i=c.Event(e,n),c(t).trigger(i),a=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),u=i.isDefaultPrevented()),s?(f=document.createEvent("HTMLEvents")).initEvent(o,a,!0):f=L(e,{bubbles:a,cancelable:!0}),"undefined"!=typeof n&&Object.keys(n).forEach(function(t){Object.defineProperty(f,t,{get:function(){return n[t]}})}),u&&(f.preventDefault(),O||Object.defineProperty(f,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(f),f.defaultPrevented&&"undefined"!=typeof i&&i.preventDefault(),f}},X={matches:function(t,e){return I.call(t,e)},find:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:S.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:w.call(e,t)},children:function(t,e){var n=this;if("string"!=typeof e)return null;var i=m(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return"string"!=typeof e?null:A.call(t,e)},prev:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},q="bs.alert",z="."+q,Z={CLOSE:"close"+z,CLOSED:"closed"+z,CLICK_DATA_API:"click"+z+".data-api"},$="alert",J="fade",tt="show",et=function(){function t(t){this._element=t,this._element&&D.setData(t,q,this)}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t));var n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},e.dispose=function(){D.removeData(this._element,q),this._element=null},e._getRootElement=function(t){var e=f(t),n=!1;return e&&(n=X.findOne(e)),n||(n=X.closest(t,"."+$)),n},e._triggerCloseEvent=function(t){return G.trigger(t,Z.CLOSE)},e._removeElement=function(t){var e=this;if(t.classList.remove(tt),t.classList.contains(J)){var n=h(t);G.one(t,l,function(n){return e._destroyElement(t,n)}),_(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),G.trigger(t,Z.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=D.getData(this,q);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return D.getData(t,q)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(G.on(document,Z.CLICK_DATA_API,'[data-dismiss="alert"]',et._handleDismiss(new et)),"undefined"!=typeof c){var nt=c.fn.alert;c.fn.alert=et._jQueryInterface,c.fn.alert.Constructor=et,c.fn.alert.noConflict=function(){return c.fn.alert=nt,et._jQueryInterface}}var it="bs.button",ot="."+it,rt="active",st="btn",at="focus",lt='[data-toggle^="button"]',ct='[data-toggle="buttons"]',ut='input:not([type="hidden"])',ft=".active",ht=".btn",dt={CLICK_DATA_API:"click"+ot+".data-api",FOCUS_DATA_API:"focus"+ot+".data-api",BLUR_DATA_API:"blur"+ot+".data-api"},gt=function(){function t(t){this._element=t,D.setData(t,it,this)}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=X.closest(this._element,ct);if(n){var i=X.findOne(ut,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(rt))t=!1;else{var o=X.findOne(ft,n);o&&o.classList.remove(rt)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(rt),G.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(rt)),t&&this._element.classList.toggle(rt)},e.dispose=function(){D.removeData(this._element,it),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=D.getData(this,it);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return D.getData(t,it)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(G.on(document,dt.CLICK_DATA_API,lt,function(t){t.preventDefault();var e=t.target;e.classList.contains(st)||(e=X.closest(e,ht));var n=D.getData(e,it);n||(n=new gt(e),D.setData(e,it,n)),n.toggle()}),G.on(document,dt.FOCUS_DATA_API,lt,function(t){var e=X.closest(t.target,ht);e&&e.classList.add(at)}),G.on(document,dt.BLUR_DATA_API,lt,function(t){var e=X.closest(t.target,ht);e&&e.classList.remove(at)}),"undefined"!=typeof c){var _t=c.fn.button;c.fn.button=gt._jQueryInterface,c.fn.button.Constructor=gt,c.fn.button.noConflict=function(){return c.fn.button=_t,gt._jQueryInterface}}function pt(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function mt(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var vt={setDataAttribute:function(t,e,n){t.setAttribute("data-"+mt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+mt(e))},getDataAttributes:function(t){if(!t)return{};var e=o({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=pt(e[t])}),e},getDataAttribute:function(t,e){return pt(t.getAttribute("data-"+mt(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},yt="carousel",Et="bs.carousel",bt="."+Et,Dt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Tt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},It="next",At="prev",St="left",wt="right",Lt={SLIDE:"slide"+bt,SLID:"slid"+bt,KEYDOWN:"keydown"+bt,MOUSEENTER:"mouseenter"+bt,MOUSELEAVE:"mouseleave"+bt,TOUCHSTART:"touchstart"+bt,TOUCHMOVE:"touchmove"+bt,TOUCHEND:"touchend"+bt,POINTERDOWN:"pointerdown"+bt,POINTERUP:"pointerup"+bt,DRAG_START:"dragstart"+bt,LOAD_DATA_API:"load"+bt+".data-api",CLICK_DATA_API:"click"+bt+".data-api"},Ct="carousel",Ot="active",Nt="slide",kt="carousel-item-right",Pt="carousel-item-left",Ht="carousel-item-next",Mt="carousel-item-prev",jt="pointer-event",Rt={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},Wt={TOUCH:"touch",PEN:"pen"},xt=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=X.findOne(Rt.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),D.setData(t,Et,this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(It)},e.nextWhenVisible=function(){!document.hidden&&v(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide(At)},e.pause=function(t){t||(this._isPaused=!0),X.findOne(Rt.NEXT_PREV,this._element)&&(d(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=X.findOne(Rt.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)G.one(this._element,Lt.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?It:At;this._slide(i,this._items[t])}},e.dispose=function(){G.off(this._element,bt),D.removeData(this._element,Et),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=o({},Dt,t),p(yt,t,Tt),t},e._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()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&G.on(this._element,Lt.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(G.on(this._element,Lt.MOUSEENTER,function(e){return t.pause(e)}),G.on(this._element,Lt.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&Wt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&Wt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.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))};m(X.find(Rt.ITEM_IMG,this._element)).forEach(function(t){G.on(t,Lt.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(G.on(this._element,Lt.POINTERDOWN,function(t){return e(t)}),G.on(this._element,Lt.POINTERUP,function(t){return n(t)}),this._element.classList.add(jt)):(G.on(this._element,Lt.TOUCHSTART,function(t){return e(t)}),G.on(this._element,Lt.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),G.on(this._element,Lt.TOUCHEND,function(t){return n(t)}))}},e._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()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?m(X.find(Rt.ITEM,t.parentNode)):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===It,i=t===At,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===At?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(X.findOne(Rt.ACTIVE_ITEM,this._element));return G.trigger(this._element,Lt.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=X.find(Rt.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(Ot);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(Ot)}},e._slide=function(t,e){var n,i,o,r=this,s=X.findOne(Rt.ACTIVE_ITEM,this._element),a=this._getItemIndex(s),c=e||s&&this._getItemByDirection(t,s),u=this._getItemIndex(c),f=Boolean(this._interval);if(t===It?(n=Pt,i=Ht,o=St):(n=kt,i=Mt,o=wt),c&&c.classList.contains(Ot))this._isSliding=!1;else if(!this._triggerSlideEvent(c,o).defaultPrevented&&s&&c){if(this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(c),this._element.classList.contains(Nt)){c.classList.add(i),E(c),s.classList.add(n),c.classList.add(n);var d=parseInt(c.getAttribute("data-interval"),10);d?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=d):this._config.interval=this._config.defaultInterval||this._config.interval;var g=h(s);G.one(s,l,function(){c.classList.remove(n),c.classList.remove(i),c.classList.add(Ot),s.classList.remove(Ot),s.classList.remove(i),s.classList.remove(n),r._isSliding=!1,setTimeout(function(){G.trigger(r._element,Lt.SLID,{relatedTarget:c,direction:o,from:a,to:u})},0)}),_(s,g)}else s.classList.remove(Ot),c.classList.add(Ot),this._isSliding=!1,G.trigger(this._element,Lt.SLID,{relatedTarget:c,direction:o,from:a,to:u});f&&this.cycle()}},t._carouselInterface=function(e,n){var i=D.getData(e,Et),r=o({},Dt,vt.getDataAttributes(e));"object"==typeof n&&(r=o({},r,n));var s="string"==typeof n?n:r.slide;if(i||(i=new t(e,r)),"number"==typeof n)i.to(n);else if("string"==typeof s){if("undefined"==typeof i[s])throw new TypeError('No method named "'+s+'"');i[s]()}else r.interval&&r.ride&&(i.pause(),i.cycle())},t._jQueryInterface=function(e){return this.each(function(){t._carouselInterface(this,e)})},t._dataApiClickHandler=function(e){var n=f(this);if(n){var i=X.findOne(n);if(i&&i.classList.contains(Ct)){var r=o({},vt.getDataAttributes(i),vt.getDataAttributes(this)),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),t._carouselInterface(i,r),s&&D.getData(i,Et).to(s),e.preventDefault()}}},t._getInstance=function(t){return D.getData(t,Et)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Dt}}]),t}();if(G.on(document,Lt.CLICK_DATA_API,Rt.DATA_SLIDE,xt._dataApiClickHandler),G.on(window,Lt.LOAD_DATA_API,function(){for(var t=m(X.find(Rt.DATA_RIDE)),e=0,n=t.length;e<n;e++)xt._carouselInterface(t[e],D.getData(t[e],Et))}),"undefined"!=typeof c){var Ut=c.fn[yt];c.fn[yt]=xt._jQueryInterface,c.fn[yt].Constructor=xt,c.fn[yt].noConflict=function(){return c.fn[yt]=Ut,xt._jQueryInterface}}var Kt="collapse",Vt="bs.collapse",Bt="."+Vt,Ft={toggle:!0,parent:""},Qt={toggle:"boolean",parent:"(string|element)"},Yt={SHOW:"show"+Bt,SHOWN:"shown"+Bt,HIDE:"hide"+Bt,HIDDEN:"hidden"+Bt,CLICK_DATA_API:"click"+Bt+".data-api"},Gt="show",Xt="collapse",qt="collapsing",zt="collapsed",Zt="width",$t="height",Jt={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},te=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=m(X.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=m(X.find(Jt.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var r=n[i],s=f(r),a=m(X.find(s)).filter(function(e){return e===t});null!==s&&a.length&&(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(),D.setData(t,Vt,this)}var e=t.prototype;return e.toggle=function(){this._element.classList.contains(Gt)?this.hide():this.show()},e.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Gt)){var n,i;this._parent&&0===(n=m(X.find(Jt.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(Xt)})).length&&(n=null);var o=X.findOne(this._selector);if(n){var r=n.filter(function(t){return o!==t});if((i=r[0]?D.getData(r[0],Vt):null)&&i._isTransitioning)return}if(!G.trigger(this._element,Yt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||D.setData(e,Vt,null)});var s=this._getDimension();this._element.classList.remove(Xt),this._element.classList.add(qt),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(zt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var a="scroll"+(s[0].toUpperCase()+s.slice(1)),c=h(this._element);G.one(this._element,l,function(){e._element.classList.remove(qt),e._element.classList.add(Xt),e._element.classList.add(Gt),e._element.style[s]="",e.setTransitioning(!1),G.trigger(e._element,Yt.SHOWN)}),_(this._element,c),this._element.style[s]=this._element[a]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Gt)&&!G.trigger(this._element,Yt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",E(this._element),this._element.classList.add(qt),this._element.classList.remove(Xt),this._element.classList.remove(Gt);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=f(o);if(null!==r)X.findOne(r).classList.contains(Gt)||(o.classList.add(zt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var s=h(this._element);G.one(this._element,l,function(){t.setTransitioning(!1),t._element.classList.remove(qt),t._element.classList.add(Xt),G.trigger(t._element,Yt.HIDDEN)}),_(this._element,s)}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){D.removeData(this._element,Vt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=o({},Ft,t)).toggle=Boolean(t.toggle),p(Kt,t,Qt),t},e._getDimension=function(){return this._element.classList.contains(Zt)?Zt:$t},e._getParent=function(){var e=this,n=this._config.parent;g(n)?"undefined"==typeof n.jquery&&"undefined"==typeof n[0]||(n=n[0]):n=X.findOne(n);var i='[data-toggle="collapse"][data-parent="'+n+'"]';return m(X.find(i,n)).forEach(function(n){e._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])}),n},e._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Gt);e.length&&e.forEach(function(t){n?t.classList.remove(zt):t.classList.add(zt),t.setAttribute("aria-expanded",n)})}},t._getTargetFromElement=function(t){var e=f(t);return e?X.findOne(e):null},t._collapseInterface=function(e,n){var i=D.getData(e,Vt),r=o({},Ft,vt.getDataAttributes(e),"object"==typeof n&&n?n:{});if(!i&&r.toggle&&/show|hide/.test(n)&&(r.toggle=!1),i||(i=new t(e,r)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._collapseInterface(this,e)})},t._getInstance=function(t){return D.getData(t,Vt)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ft}}]),t}();if(G.on(document,Yt.CLICK_DATA_API,Jt.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=vt.getDataAttributes(this),n=f(this);m(X.find(n)).forEach(function(t){var n,i=D.getData(t,Vt);i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,te._collapseInterface(t,n)})}),"undefined"!=typeof c){var ee=c.fn[Kt];c.fn[Kt]=te._jQueryInterface,c.fn[Kt].Constructor=te,c.fn[Kt].noConflict=function(){return c.fn[Kt]=ee,te._jQueryInterface}}var ne="dropdown",ie="bs.dropdown",oe="."+ie,re=new RegExp("38|40|27"),se={HIDE:"hide"+oe,HIDDEN:"hidden"+oe,SHOW:"show"+oe,SHOWN:"shown"+oe,CLICK:"click"+oe,CLICK_DATA_API:"click"+oe+".data-api",KEYDOWN_DATA_API:"keydown"+oe+".data-api",KEYUP_DATA_API:"keyup"+oe+".data-api"},ae="disabled",le="show",ce="dropup",ue="dropright",fe="dropleft",he="dropdown-menu-right",de="position-static",ge='[data-toggle="dropdown"]',_e=".dropdown form",pe=".dropdown-menu",me=".navbar-nav",ve=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",ye="top-start",Ee="top-end",be="bottom-start",De="bottom-end",Te="right-start",Ie="left-start",Ae={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Se={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},we=function(){function e(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),D.setData(t,ie,this)}var i=e.prototype;return i.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(ae)){var n=e._getParentFromElement(this._element),i=this._menu.classList.contains(le);if(e._clearMenus(),!i){var o={relatedTarget:this._element};if(!G.trigger(n,se.SHOW,o).defaultPrevented){if(!this._inNavbar){if("undefined"==typeof t)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=n:g(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&n.classList.add(de),this._popper=new t(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!m(X.closest(n,me)).length&&m(document.body.children).forEach(function(t){return G.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),vt.toggleClass(this._menu,le),vt.toggleClass(n,le),G.trigger(n,se.SHOWN,o)}}}},i.show=function(){if(!(this._element.disabled||this._element.classList.contains(ae)||this._menu.classList.contains(le))){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};G.trigger(t,se.SHOW,n).defaultPrevented||(vt.toggleClass(this._menu,le),vt.toggleClass(t,le),G.trigger(t,se.SHOWN,n))}},i.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(ae)&&this._menu.classList.contains(le)){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};G.trigger(t,se.HIDE,n).defaultPrevented||(vt.toggleClass(this._menu,le),vt.toggleClass(t,le),G.trigger(t,se.HIDDEN,n))}},i.dispose=function(){D.removeData(this._element,ie),G.off(this._element,oe),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},i._addEventListeners=function(){var t=this;G.on(this._element,se.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},i._getConfig=function(t){return t=o({},this.constructor.Default,vt.getDataAttributes(this._element),t),p(ne,t,this.constructor.DefaultType),t},i._getMenuElement=function(){if(!this._menu){var t=e._getParentFromElement(this._element);t&&(this._menu=X.findOne(pe,t))}return this._menu},i._getPlacement=function(){var t=this._element.parentNode,e=be;return t.classList.contains(ce)?(e=ye,this._menu.classList.contains(he)&&(e=Ee)):t.classList.contains(ue)?e=Te:t.classList.contains(fe)?e=Ie:this._menu.classList.contains(he)&&(e=De),e},i._detectNavbar=function(){return Boolean(X.closest(this._element,".navbar"))},i._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=o({},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}),t},e._dropdownInterface=function(t,n){var i=D.getData(t,ie);if(i||(i=new e(t,"object"==typeof n?n:null)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e._jQueryInterface=function(t){return this.each(function(){e._dropdownInterface(this,t)})},e._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=m(X.find(ge)),i=0,o=n.length;i<o;i++){var r=e._getParentFromElement(n[i]),s=D.getData(n[i],ie),a={relatedTarget:n[i]};if(t&&"click"===t.type&&(a.clickEvent=t),s){var l=s._menu;if(r.classList.contains(le))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&r.contains(t.target)))G.trigger(r,se.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){return G.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(le),r.classList.remove(le),G.trigger(r,se.HIDDEN,a))}}},e._getParentFromElement=function(t){var e,n=f(t);return n&&(e=X.findOne(n)),e||t.parentNode},e._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||X.closest(t.target,pe))):re.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(ae))){var n=e._getParentFromElement(this),i=n.classList.contains(le);if(!i||i&&(27===t.which||32===t.which))return 27===t.which&&G.trigger(X.findOne(ge,n),"focus"),void e._clearMenus();var o=m(X.find(ve,n));if(o.length){var r=o.indexOf(t.target);38===t.which&&r>0&&r--,40===t.which&&r<o.length-1&&r++,r<0&&(r=0),o[r].focus()}}},e._getInstance=function(t){return D.getData(t,ie)},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ae}},{key:"DefaultType",get:function(){return Se}}]),e}();if(G.on(document,se.KEYDOWN_DATA_API,ge,we._dataApiKeydownHandler),G.on(document,se.KEYDOWN_DATA_API,pe,we._dataApiKeydownHandler),G.on(document,se.CLICK_DATA_API,we._clearMenus),G.on(document,se.KEYUP_DATA_API,we._clearMenus),G.on(document,se.CLICK_DATA_API,ge,function(t){t.preventDefault(),t.stopPropagation(),we._dropdownInterface(this,"toggle")}),G.on(document,se.CLICK_DATA_API,_e,function(t){return t.stopPropagation()}),"undefined"!=typeof c){var Le=c.fn[ne];c.fn[ne]=we._jQueryInterface,c.fn[ne].Constructor=we,c.fn[ne].noConflict=function(){return c.fn[ne]=Le,we._jQueryInterface}}var Ce="bs.modal",Oe="."+Ce,Ne={backdrop:!0,keyboard:!0,focus:!0,show:!0},ke={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Pe={HIDE:"hide"+Oe,HIDDEN:"hidden"+Oe,SHOW:"show"+Oe,SHOWN:"shown"+Oe,FOCUSIN:"focusin"+Oe,RESIZE:"resize"+Oe,CLICK_DISMISS:"click.dismiss"+Oe,KEYDOWN_DISMISS:"keydown.dismiss"+Oe,MOUSEUP_DISMISS:"mouseup.dismiss"+Oe,MOUSEDOWN_DISMISS:"mousedown.dismiss"+Oe,CLICK_DATA_API:"click"+Oe+".data-api"},He="modal-dialog-scrollable",Me="modal-scrollbar-measure",je="modal-backdrop",Re="modal-open",We="fade",xe="show",Ue={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Ke=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=X.findOne(Ue.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,D.setData(t,Ce,this)}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(We)&&(this._isTransitioning=!0);var n=G.trigger(this._element,Pe.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),G.on(this._element,Pe.CLICK_DISMISS,Ue.DATA_DISMISS,function(t){return e.hide(t)}),G.on(this._dialog,Pe.MOUSEDOWN_DISMISS,function(){G.one(e._element,Pe.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},e.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=G.trigger(this._element,Pe.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(We);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),G.off(document,Pe.FOCUSIN),this._element.classList.remove(xe),G.off(this._element,Pe.CLICK_DISMISS),G.off(this._dialog,Pe.MOUSEDOWN_DISMISS),i){var o=h(this._element);G.one(this._element,l,function(t){return e._hideModal(t)}),_(this._element,o)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return G.off(t,Oe)}),G.off(document,Pe.FOCUSIN),D.removeData(this._element,Ce),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=o({},Ne,t),p("modal",t,ke),t},e._showElement=function(t){var e=this,n=this._element.classList.contains(We);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(He)?X.findOne(Ue.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&E(this._element),this._element.classList.add(xe),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,G.trigger(e._element,Pe.SHOWN,{relatedTarget:t})};if(n){var o=h(this._dialog);G.one(this._dialog,l,i),_(this._dialog,o)}else i()},e._enforceFocus=function(){var t=this;G.off(document,Pe.FOCUSIN),G.on(document,Pe.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?G.on(this._element,Pe.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||G.off(this._element,Pe.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?G.on(window,Pe.RESIZE,function(e){return t.handleUpdate(e)}):G.off(window,Pe.RESIZE)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(Re),t._resetAdjustments(),t._resetScrollbar(),G.trigger(t._element,Pe.HIDDEN)})},e._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=this._element.classList.contains(We)?We:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=je,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),G.on(this._element,Pe.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&E(this._backdrop),this._backdrop.classList.add(xe),!t)return;if(!n)return void t();var i=h(this._backdrop);G.one(this._backdrop,l,t),_(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(xe);var o=function(){e._removeBackdrop(),t&&t()};if(this._element.classList.contains(We)){var r=h(this._backdrop);G.one(this._backdrop,l,o),_(this._backdrop,r)}else o()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){m(X.find(Ue.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];vt.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),m(X.find(Ue.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];vt.setDataAttribute(e,"margin-right",n),e.style.marginRight=parseFloat(i)-t._scrollbarWidth+"px"});var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];vt.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(Re)},e._resetScrollbar=function(){m(X.find(Ue.FIXED_CONTENT)).forEach(function(t){var e=vt.getDataAttribute(t,"padding-right");"undefined"!=typeof e&&(vt.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),m(X.find(""+Ue.STICKY_CONTENT)).forEach(function(t){var e=vt.getDataAttribute(t,"margin-right");"undefined"!=typeof e&&(vt.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=vt.getDataAttribute(document.body,"padding-right");"undefined"==typeof t?document.body.style.paddingRight="":(vt.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className=Me,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each(function(){var i=D.getData(this,Ce),r=o({},Ne,vt.getDataAttributes(this),"object"==typeof e&&e?e:{});if(i||(i=new t(this,r)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else r.show&&i.show(n)})},t._getInstance=function(t){return D.getData(t,Ce)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ne}}]),t}();if(G.on(document,Pe.CLICK_DATA_API,Ue.DATA_TOGGLE,function(t){var e,n=this,i=f(this);i&&(e=X.findOne(i));var r=D.getData(e,Ce)?"toggle":o({},vt.getDataAttributes(e),vt.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),G.one(e,Pe.SHOW,function(t){t.defaultPrevented||G.one(e,Pe.HIDDEN,function(){v(n)&&n.focus()})});var s=D.getData(e,Ce);s||(s=new Ke(e,r)),s.show(this)}),"undefined"!=typeof c){var Ve=c.fn.modal;c.fn.modal=Ke._jQueryInterface,c.fn.modal.Constructor=Ke,c.fn.modal.noConflict=function(){return c.fn.modal=Ve,Ke._jQueryInterface}}var Be=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Fe=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Qe=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Ye=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Be.indexOf(n)||Boolean(t.nodeValue.match(Fe)||t.nodeValue.match(Qe));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1},Ge={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Xe(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=m(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(s))return i.parentNode.removeChild(i),"continue";var a=m(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach(function(t){Ye(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}var qe="tooltip",ze=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Ze=["sanitize","whiteList","sanitizeFn"],$e={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},Je={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},tn={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Ge},en="show",nn="out",on={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"},rn="fade",sn="show",an=".tooltip-inner",ln=".tooltip-arrow",cn="hover",un="focus",fn="click",hn="manual",dn=function(){function e(e,n){if("undefined"==typeof t)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=e,this.config=this._getConfig(n),this.tip=null,this._setListeners(),D.setData(e,this.constructor.DATA_KEY,this)}var i=e.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 e=this.constructor.DATA_KEY,n=D.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),D.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),D.removeData(this.element,this.constructor.DATA_KEY),G.off(this.element,this.constructor.EVENT_KEY),G.off(X.closest(this.element,".modal"),"hide.bs.modal"),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var e=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var n=G.trigger(this.element,this.constructor.Event.SHOW),i=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this.element),o=null===i?this.element.ownerDocument.documentElement.contains(this.element):i.contains(this.element);if(n.defaultPrevented||!o)return;var r=this.getTipElement(),s=u(this.constructor.NAME);r.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&r.classList.add(rn);var a="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,c=this._getAttachment(a);this.addAttachmentClass(c);var f=this._getContainer();D.setData(r,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||f.appendChild(r),G.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new t(this.element,r,{placement:c,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:ln},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),r.classList.add(sn),"ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){G.on(t,"mouseover",function(){})});var d=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,G.trigger(e.element,e.constructor.Event.SHOWN),t===nn&&e._leave(null,e)};if(this.tip.classList.contains(rn)){var g=h(this.tip);G.one(this.tip,l,d),_(this.tip,g)}else d()}},i.hide=function(t){var e=this,n=this.getTipElement(),i=function(){e._hoverState!==en&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),G.trigger(e.element,e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(!G.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(sn),"ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){return G.off(t,"mouseover",y)}),this._activeTrigger[fn]=!1,this._activeTrigger[un]=!1,this._activeTrigger[cn]=!1,this.tip.classList.contains(rn)){var o=h(n);G.one(n,l,i),_(n,o)}else i();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},i.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(X.findOne(an,t),this.getTitle()),t.classList.remove(rn),t.classList.remove(sn)},i.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&(e.nodeType||e.jquery)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Xe(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},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._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=o({},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:g(this.config.container)?this.config.container:X.findOne(this.config.container)},i._getAttachment=function(t){return Je[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)G.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==hn){var n=e===cn?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===cn?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;G.on(t.element,n,t.config.selector,function(e){return t._enter(e)}),G.on(t.element,i,t.config.selector,function(e){return t._leave(e)})}}),G.on(X.closest(this.element,".modal"),"hide.bs.modal",function(){t.element&&t.hide()}),this.config.selector?this.config=o({},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,e){var n=this.constructor.DATA_KEY;(e=e||D.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),D.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?un:cn]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===en?e._hoverState=en:(clearTimeout(e._timeout),e._hoverState=en,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===en&&e.show()},e.config.delay.show):e.show())},i._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||D.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),D.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?un:cn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=nn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===nn&&e.hide()},e.config.delay.hide):e.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){var e=vt.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==Ze.indexOf(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=o({},this.constructor.Default,e,"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()),p(qe,t,this.constructor.DefaultType),t.sanitize&&(t.template=Xe(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=this.getTipElement(),e=t.getAttribute("class").match(ze);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},i._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(rn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},e._jQueryInterface=function(t){return this.each(function(){var n=D.getData(this,"bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(t){return D.getData(t,"bs.tooltip")},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return tn}},{key:"NAME",get:function(){return qe}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return on}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return $e}}]),e}();if("undefined"!=typeof c){var gn=c.fn.tooltip;c.fn.tooltip=dn._jQueryInterface,c.fn.tooltip.Constructor=dn,c.fn.tooltip.noConflict=function(){return c.fn.tooltip=gn,dn._jQueryInterface}}var _n="popover",pn=new RegExp("(^|\\s)bs-popover\\S+","g"),mn=o({},dn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),vn=o({},dn.DefaultType,{content:"(string|element|function)"}),yn="fade",En="show",bn=".popover-header",Dn=".popover-body",Tn={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"},In=function(t){var e,i;function o(){return t.apply(this,arguments)||this}i=t,(e=o).prototype=Object.create(i.prototype),e.prototype.constructor=e,e.__proto__=i;var r=o.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},r.setContent=function(){var t=this.getTipElement();this.setElementContent(X.findOne(bn,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(X.findOne(Dn,t),e),t.classList.remove(yn),t.classList.remove(En)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(pn);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=D.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),D.setData(this,"bs.popover",e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o._getInstance=function(t){return D.getData(t,"bs.popover")},n(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return mn}},{key:"NAME",get:function(){return _n}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Tn}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return vn}}]),o}(dn);if("undefined"!=typeof c){var An=c.fn.popover;c.fn.popover=In._jQueryInterface,c.fn.popover.Constructor=In,c.fn.popover.noConflict=function(){return c.fn.popover=An,In._jQueryInterface}}var Sn="scrollspy",wn="bs.scrollspy",Ln="."+wn,Cn={offset:10,method:"auto",target:""},On={offset:"number",method:"string",target:"(string|element)"},Nn={ACTIVATE:"activate"+Ln,SCROLL:"scroll"+Ln,LOAD_DATA_API:"load"+Ln+".data-api"},kn={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},Pn={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},Hn="offset",Mn="position",jn=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+Pn.NAV_LINKS+","+this._config.target+" "+Pn.LIST_ITEMS+","+this._config.target+" ."+kn.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,G.on(this._scrollElement,Nn.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),D.setData(t,wn,this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Hn:Mn,n="auto"===this._config.method?e:this._config.method,i=n===Mn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),m(X.find(this._selector)).map(function(t){var e,o=f(t);if(o&&(e=X.findOne(o)),e){var r=e.getBoundingClientRect();if(r.width||r.height)return[vt[n](e).top+i,o]}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])})},e.dispose=function(){D.removeData(this._element,wn),G.off(this._scrollElement,Ln),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=o({},Cn,"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=u(Sn),t.target.id=e),t.target="#"+e}return p(Sn,t,On),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),n=X.findOne(e.join(","));n.classList.contains(kn.DROPDOWN_ITEM)?(X.findOne(Pn.DROPDOWN_TOGGLE,X.closest(n,Pn.DROPDOWN)).classList.add(kn.ACTIVE),n.classList.add(kn.ACTIVE)):(n.classList.add(kn.ACTIVE),X.parents(n,Pn.NAV_LIST_GROUP).forEach(function(t){X.prev(t,Pn.NAV_LINKS+", "+Pn.LIST_ITEMS).forEach(function(t){return t.classList.add(kn.ACTIVE)}),X.prev(t,Pn.NAV_ITEMS).forEach(function(t){X.children(t,Pn.NAV_LINKS).forEach(function(t){return t.classList.add(kn.ACTIVE)})})})),G.trigger(this._scrollElement,Nn.ACTIVATE,{relatedTarget:t})},e._clear=function(){m(X.find(this._selector)).filter(function(t){return t.classList.contains(kn.ACTIVE)}).forEach(function(t){return t.classList.remove(kn.ACTIVE)})},t._jQueryInterface=function(e){return this.each(function(){var n=D.getData(this,wn);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return D.getData(t,wn)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Cn}}]),t}();if(G.on(window,Nn.LOAD_DATA_API,function(){m(X.find(Pn.DATA_SPY)).forEach(function(t){return new jn(t,vt.getDataAttributes(t))})}),"undefined"!=typeof c){var Rn=c.fn[Sn];c.fn[Sn]=jn._jQueryInterface,c.fn[Sn].Constructor=jn,c.fn[Sn].noConflict=function(){return c.fn[Sn]=Rn,jn._jQueryInterface}}var Wn="bs.tab",xn="."+Wn,Un={HIDE:"hide"+xn,HIDDEN:"hidden"+xn,SHOW:"show"+xn,SHOWN:"shown"+xn,CLICK_DATA_API:"click"+xn+".data-api"},Kn="dropdown-menu",Vn="active",Bn="disabled",Fn="fade",Qn="show",Yn=".dropdown",Gn=".nav, .list-group",Xn=".active",qn=":scope > li > .active",zn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Zn=".dropdown-toggle",$n=":scope > .dropdown-menu .active",Jn=function(){function t(t){this._element=t,D.setData(this._element,Wn,this)}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Vn)||this._element.classList.contains(Bn))){var e,n,i=X.closest(this._element,Gn),o=f(this._element);if(i){var r="UL"===i.nodeName||"OL"===i.nodeName?qn:Xn;n=(n=m(X.find(r,i)))[n.length-1]}var s=null;if(n&&(s=G.trigger(n,Un.HIDE,{relatedTarget:this._element})),!(G.trigger(this._element,Un.SHOW,{relatedTarget:n}).defaultPrevented||null!==s&&s.defaultPrevented)){o&&(e=X.findOne(o)),this._activate(this._element,i);var a=function(){G.trigger(n,Un.HIDDEN,{relatedTarget:t._element}),G.trigger(t._element,Un.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},e.dispose=function(){D.removeData(this._element,Wn),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?X.children(e,Xn):X.find(qn,e))[0],r=n&&o&&o.classList.contains(Fn),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=h(o);o.classList.remove(Qn),G.one(o,l,s),_(o,a)}else s()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove(Vn);var i=X.findOne($n,e.parentNode);i&&i.classList.remove(Vn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(Vn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),E(t),t.classList.contains(Fn)&&t.classList.add(Qn),t.parentNode&&t.parentNode.classList.contains(Kn))&&(X.closest(t,Yn)&&m(X.find(Zn)).forEach(function(t){return t.classList.add(Vn)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=D.getData(this,Wn)||new t(this);if("string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return D.getData(t,Wn)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(G.on(document,Un.CLICK_DATA_API,zn,function(t){t.preventDefault(),(D.getData(this,Wn)||new Jn(this)).show()}),"undefined"!=typeof c){var ti=c.fn.tab;c.fn.tab=Jn._jQueryInterface,c.fn.tab.Constructor=Jn,c.fn.tab.noConflict=function(){return c.fn.tab=ti,Jn._jQueryInterface}}var ei="bs.toast",ni="."+ei,ii={CLICK_DISMISS:"click.dismiss"+ni,HIDE:"hide"+ni,HIDDEN:"hidden"+ni,SHOW:"show"+ni,SHOWN:"shown"+ni},oi="fade",ri="hide",si="show",ai="showing",li={animation:"boolean",autohide:"boolean",delay:"number"},ci={animation:!0,autohide:!0,delay:500},ui='[data-dismiss="toast"]',fi=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),D.setData(t,ei,this)}var e=t.prototype;return e.show=function(){var t=this;G.trigger(this._element,ii.SHOW),this._config.animation&&this._element.classList.add(oi);var e=function(){t._element.classList.remove(ai),t._element.classList.add(si),G.trigger(t._element,ii.SHOWN),t._config.autohide&&(t._timeout=setTimeout(function(){t.hide()},t._config.delay))};if(this._element.classList.remove(ri),this._element.classList.add(ai),this._config.animation){var n=h(this._element);G.one(this._element,l,e),_(this._element,n)}else e()},e.hide=function(){var t=this;if(this._element.classList.contains(si)){G.trigger(this._element,ii.HIDE);var e=function(){t._element.classList.add(ri),G.trigger(t._element,ii.HIDDEN)};if(this._element.classList.remove(si),this._config.animation){var n=h(this._element);G.one(this._element,l,e),_(this._element,n)}else e()}},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(si)&&this._element.classList.remove(si),G.off(this._element,ii.CLICK_DISMISS),D.removeData(this._element,ei),this._element=null,this._config=null},e._getConfig=function(t){return t=o({},ci,vt.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),p("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;G.on(this._element,ii.CLICK_DISMISS,ui,function(){return t.hide()})},t._jQueryInterface=function(e){return this.each(function(){var n=D.getData(this,ei);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}})},t._getInstance=function(t){return D.getData(t,ei)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return li}},{key:"Default",get:function(){return ci}}]),t}();if("undefined"!=typeof c){var hi=c.fn.toast;c.fn.toast=fi._jQueryInterface,c.fn.toast.Constructor=fi,c.fn.toast.noConflict=function(){return c.fn.toast=hi,fi._jQueryInterface}}return{Alert:et,Button:gt,Carousel:xt,Collapse:te,Dropdown:we,Modal:Ke,Popover:In,ScrollSpy:jn,Tab:Jn,Toast:fi,Tooltip:dn}}); //# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file diff --git a/dist/js/bootstrap.min.js.map b/dist/js/bootstrap.min.js.map index d5f09b6136..f31be76646 100644 --- a/dist/js/bootstrap.min.js.map +++ b/dist/js/bootstrap.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"names":["storeData","id","e","element","defaultPreventedPreservedOnDispatch","find","findOne","scopeSelectorRegex","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","_window$getComputedSt","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","Element","prototype","querySelectorAll","this","hasId","Boolean","replace","removeAttribute","matches","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","findHandler","events","handler","delegationSelector","uidList","i","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","SelectorEngine","documentElement","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast","withoutTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n })()\n\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n }\n\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!Polyfill.defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"names":["storeData","id","e","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","_window$getComputedSt","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","CustomEvent","bubbles","cancelable","detail","initCustomEvent","preventDefault","defaultPrevented","origPreventDefault","Event","this","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","findHandler","events","handler","delegationSelector","_i","_Object$keys","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","i","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","SelectorEngine","documentElement","findFn","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n for (const uid of Object.keys(events)) {\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file diff --git a/js/dist/alert.js b/js/dist/alert.js index 66fe5dc807..2299fb0a4f 100644 --- a/js/dist/alert.js +++ b/js/dist/alert.js @@ -79,7 +79,9 @@ }; var triggerTransitionEnd = function triggerTransitionEnd(element) { - element.dispatchEvent(new Event(TRANSITION_END)); + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(TRANSITION_END, true, true); + element.dispatchEvent(evt); }; var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { @@ -114,7 +116,7 @@ var Selector = { DISMISS: '[data-dismiss="alert"]' }; - var Event$1 = { + var Event = { CLOSE: "close" + EVENT_KEY, CLOSED: "closed" + EVENT_KEY, CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY @@ -184,7 +186,7 @@ }; _proto._triggerCloseEvent = function _triggerCloseEvent(element) { - return EventHandler.trigger(element, Event$1.CLOSE); + return EventHandler.trigger(element, Event.CLOSE); }; _proto._removeElement = function _removeElement(element) { @@ -210,7 +212,7 @@ element.parentNode.removeChild(element); } - EventHandler.trigger(element, Event$1.CLOSED); + EventHandler.trigger(element, Event.CLOSED); } // Static ; @@ -258,7 +260,7 @@ */ - EventHandler.on(document, Event$1.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert())); + EventHandler.on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert())); /** * ------------------------------------------------------------------------ * jQuery diff --git a/js/dist/alert.js.map b/js/dist/alert.js.map index a75dd4ac06..40f4184ab3 100644 --- a/js/dist/alert.js.map +++ b/js/dist/alert.js.map @@ -1 +1 @@ -{"version":3,"file":"alert.js","sources":["../src/util/index.js","../src/alert.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","Data","setData","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","defaultPrevented","_removeElement","dispose","removeData","parent","SelectorEngine","findOne","closest","EventHandler","trigger","classList","remove","contains","_destroyElement","one","event","parentNode","removeChild","_jQueryInterface","config","each","data","getData","_handleDismiss","alertInstance","preventDefault","_getInstance","on","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"alert.js","sources":["../src/util/index.js","../src/alert.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","Data","setData","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","defaultPrevented","_removeElement","dispose","removeData","parent","SelectorEngine","findOne","closest","EventHandler","trigger","classList","remove","contains","_destroyElement","one","event","parentNode","removeChild","_jQueryInterface","config","each","data","getData","_handleDismiss","alertInstance","preventDefault","_getInstance","on","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/button.js b/js/dist/button.js index 2e1079dd0b..8f3eabfaeb 100644 --- a/js/dist/button.js +++ b/js/dist/button.js @@ -188,11 +188,17 @@ }); EventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { var button = SelectorEngine.closest(event.target, Selector.BUTTON); - button.classList.add(ClassName.FOCUS); + + if (button) { + button.classList.add(ClassName.FOCUS); + } }); EventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { var button = SelectorEngine.closest(event.target, Selector.BUTTON); - button.classList.remove(ClassName.FOCUS); + + if (button) { + button.classList.remove(ClassName.FOCUS); + } }); /** * ------------------------------------------------------------------------ diff --git a/js/dist/button.js.map b/js/dist/button.js.map index a4fbda97a0..5c7f97260a 100644 --- a/js/dist/button.js.map +++ b/js/dist/button.js.map @@ -1 +1 @@ -{"version":3,"file":"button.js","sources":["../src/util/index.js","../src/button.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n"],"names":["window","jQuery","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ClassName","ACTIVE","BUTTON","FOCUS","Selector","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","Event","CLICK_DATA_API","FOCUS_DATA_API","BLUR_DATA_API","Button","element","_element","Data","setData","toggle","triggerChangeEvent","addAriaPressed","rootElement","SelectorEngine","closest","input","findOne","type","checked","classList","contains","activeElement","remove","hasAttribute","EventHandler","trigger","focus","setAttribute","dispose","removeData","_jQueryInterface","config","each","data","getData","_getInstance","on","document","event","preventDefault","button","target","add","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"button.js","sources":["../src/util/index.js","../src/button.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n"],"names":["window","jQuery","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ClassName","ACTIVE","BUTTON","FOCUS","Selector","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","Event","CLICK_DATA_API","FOCUS_DATA_API","BLUR_DATA_API","Button","element","_element","Data","setData","toggle","triggerChangeEvent","addAriaPressed","rootElement","SelectorEngine","closest","input","findOne","type","checked","classList","contains","activeElement","remove","hasAttribute","EventHandler","trigger","focus","setAttribute","dispose","removeData","_jQueryInterface","config","each","data","getData","_getInstance","on","document","event","preventDefault","button","target","add","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/carousel.js b/js/dist/carousel.js index c19272b324..5cf80e1ad8 100644 --- a/js/dist/carousel.js +++ b/js/dist/carousel.js @@ -118,7 +118,9 @@ }; var triggerTransitionEnd = function triggerTransitionEnd(element) { - element.dispatchEvent(new Event(TRANSITION_END)); + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(TRANSITION_END, true, true); + element.dispatchEvent(evt); }; var isElement = function isElement(obj) { @@ -219,7 +221,7 @@ LEFT: 'left', RIGHT: 'right' }; - var Event$1 = { + var Event = { SLIDE: "slide" + EVENT_KEY, SLID: "slid" + EVENT_KEY, KEYDOWN: "keydown" + EVENT_KEY, @@ -354,7 +356,7 @@ } if (this._isSliding) { - EventHandler.one(this._element, Event$1.SLID, function () { + EventHandler.one(this._element, Event.SLID, function () { return _this.to(index); }); return; @@ -398,7 +400,8 @@ return; } - var direction = absDeltax / this.touchDeltaX; // swipe left + var direction = absDeltax / this.touchDeltaX; + this.touchDeltaX = 0; // swipe left if (direction > 0) { this.prev(); @@ -414,16 +417,16 @@ var _this2 = this; if (this._config.keyboard) { - EventHandler.on(this._element, Event$1.KEYDOWN, function (event) { + EventHandler.on(this._element, Event.KEYDOWN, function (event) { return _this2._keydown(event); }); } if (this._config.pause === 'hover') { - EventHandler.on(this._element, Event$1.MOUSEENTER, function (event) { + EventHandler.on(this._element, Event.MOUSEENTER, function (event) { return _this2.pause(event); }); - EventHandler.on(this._element, Event$1.MOUSELEAVE, function (event) { + EventHandler.on(this._element, Event.MOUSELEAVE, function (event) { return _this2.cycle(event); }); } @@ -485,28 +488,28 @@ }; makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(function (itemImg) { - EventHandler.on(itemImg, Event$1.DRAG_START, function (e) { + EventHandler.on(itemImg, Event.DRAG_START, function (e) { return e.preventDefault(); }); }); if (this._pointerEvent) { - EventHandler.on(this._element, Event$1.POINTERDOWN, function (event) { + EventHandler.on(this._element, Event.POINTERDOWN, function (event) { return start(event); }); - EventHandler.on(this._element, Event$1.POINTERUP, function (event) { + EventHandler.on(this._element, Event.POINTERUP, function (event) { return end(event); }); this._element.classList.add(ClassName.POINTER_EVENT); } else { - EventHandler.on(this._element, Event$1.TOUCHSTART, function (event) { + EventHandler.on(this._element, Event.TOUCHSTART, function (event) { return start(event); }); - EventHandler.on(this._element, Event$1.TOUCHMOVE, function (event) { + EventHandler.on(this._element, Event.TOUCHMOVE, function (event) { return move(event); }); - EventHandler.on(this._element, Event$1.TOUCHEND, function (event) { + EventHandler.on(this._element, Event.TOUCHEND, function (event) { return end(event); }); } @@ -560,7 +563,7 @@ var fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)); - return EventHandler.trigger(this._element, Event$1.SLIDE, { + return EventHandler.trigger(this._element, Event.SLIDE, { relatedTarget: relatedTarget, direction: eventDirectionName, from: fromIndex, @@ -658,7 +661,7 @@ activeElement.classList.remove(directionalClassName); _this4._isSliding = false; setTimeout(function () { - EventHandler.trigger(_this4._element, Event$1.SLID, { + EventHandler.trigger(_this4._element, Event.SLID, { relatedTarget: nextElement, direction: eventDirectionName, from: activeElementIndex, @@ -671,7 +674,7 @@ activeElement.classList.remove(ClassName.ACTIVE); nextElement.classList.add(ClassName.ACTIVE); this._isSliding = false; - EventHandler.trigger(this._element, Event$1.SLID, { + EventHandler.trigger(this._element, Event.SLID, { relatedTarget: nextElement, direction: eventDirectionName, from: activeElementIndex, @@ -775,8 +778,8 @@ */ - EventHandler.on(document, Event$1.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler); - EventHandler.on(window, Event$1.LOAD_DATA_API, function () { + EventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler); + EventHandler.on(window, Event.LOAD_DATA_API, function () { var carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE)); for (var i = 0, len = carousels.length; i < len; i++) { diff --git a/js/dist/carousel.js.map b/js/dist/carousel.js.map index 59b3362fb7..c0ae3f5511 100644 --- a/js/dist/carousel.js.map +++ b/js/dist/carousel.js.map @@ -1 +1 @@ -{"version":3,"file":"carousel.js","sources":["../src/util/index.js","../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","reflow","offsetHeight","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","ITEM","POINTER_EVENT","Selector","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_element","_indicatorsElement","SelectorEngine","findOne","_touchSupported","documentElement","navigator","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","MSPointerEvent","_addEventListeners","Data","setData","next","_slide","nextWhenVisible","hidden","prev","event","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","EventHandler","one","direction","dispose","off","removeData","_handleSwipe","absDeltax","Math","abs","on","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","find","itemImg","e","preventDefault","classList","add","target","tagName","which","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","trigger","from","_setActiveIndicatorElement","indicators","i","remove","nextIndicator","children","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","contains","slideEvent","defaultPrevented","nextElementInterval","parseInt","defaultInterval","_carouselInterface","data","getData","Manipulator","getDataAttributes","action","TypeError","ride","_jQueryInterface","each","_dataApiClickHandler","slideIndex","_getInstance","carousels","len","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"carousel.js","sources":["../src/util/index.js","../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","reflow","offsetHeight","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","Event","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","ITEM","POINTER_EVENT","Selector","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_element","_indicatorsElement","SelectorEngine","findOne","_touchSupported","documentElement","navigator","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","MSPointerEvent","_addEventListeners","Data","setData","next","_slide","nextWhenVisible","hidden","prev","event","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","EventHandler","one","direction","dispose","off","removeData","_handleSwipe","absDeltax","Math","abs","on","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","find","itemImg","e","preventDefault","classList","add","target","tagName","which","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","trigger","from","_setActiveIndicatorElement","indicators","i","remove","nextIndicator","children","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","contains","slideEvent","defaultPrevented","nextElementInterval","parseInt","defaultInterval","_carouselInterface","data","getData","Manipulator","getDataAttributes","action","TypeError","ride","_jQueryInterface","each","_dataApiClickHandler","slideIndex","_getInstance","carousels","len","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/collapse.js b/js/dist/collapse.js index 1c0b906e0b..4bef72a289 100644 --- a/js/dist/collapse.js +++ b/js/dist/collapse.js @@ -118,7 +118,9 @@ }; var triggerTransitionEnd = function triggerTransitionEnd(element) { - element.dispatchEvent(new Event(TRANSITION_END)); + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(TRANSITION_END, true, true); + element.dispatchEvent(evt); }; var isElement = function isElement(obj) { @@ -186,7 +188,7 @@ toggle: 'boolean', parent: '(string|element)' }; - var Event$1 = { + var Event = { SHOW: "show" + EVENT_KEY, SHOWN: "shown" + EVENT_KEY, HIDE: "hide" + EVENT_KEY, @@ -300,7 +302,7 @@ } } - var startEvent = EventHandler.trigger(this._element, Event$1.SHOW); + var startEvent = EventHandler.trigger(this._element, Event.SHOW); if (startEvent.defaultPrevented) { return; @@ -346,7 +348,7 @@ _this.setTransitioning(false); - EventHandler.trigger(_this._element, Event$1.SHOWN); + EventHandler.trigger(_this._element, Event.SHOWN); }; var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); @@ -364,7 +366,7 @@ return; } - var startEvent = EventHandler.trigger(this._element, Event$1.HIDE); + var startEvent = EventHandler.trigger(this._element, Event.HIDE); if (startEvent.defaultPrevented) { return; @@ -408,7 +410,7 @@ _this2._element.classList.add(ClassName.COLLAPSE); - EventHandler.trigger(_this2._element, Event$1.HIDDEN); + EventHandler.trigger(_this2._element, Event.HIDDEN); }; this._element.style[dimension] = ''; @@ -543,7 +545,7 @@ */ - EventHandler.on(document, Event$1.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + EventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { // preventDefault only for <a> elements (which change the URL) not inside the collapsible element if (event.target.tagName === 'A') { event.preventDefault(); diff --git a/js/dist/collapse.js.map b/js/dist/collapse.js.map index 7f4eba9ed1..7f2dac437c 100644 --- a/js/dist/collapse.js.map +++ b/js/dist/collapse.js.map @@ -1 +1 @@ -{"version":3,"file":"collapse.js","sources":["../src/util/index.js","../src/collapse.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","reflow","offsetHeight","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","toggle","parent","DefaultType","SHOW","SHOWN","HIDE","HIDDEN","CLICK_DATA_API","ClassName","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","Selector","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_element","_config","_getConfig","_triggerArray","SelectorEngine","find","id","toggleList","i","len","length","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","Data","setData","classList","contains","hide","show","actives","activesData","container","findOne","tempActiveData","getData","startEvent","EventHandler","trigger","defaultPrevented","elemActive","_collapseInterface","dimension","_getDimension","remove","add","style","setAttribute","setTransitioning","complete","capitalizedDimension","scrollSize","one","getBoundingClientRect","triggerArrayLength","isTransitioning","dispose","removeData","Boolean","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","data","Manipulator","getDataAttributes","TypeError","_jQueryInterface","each","_getInstance","on","event","target","tagName","preventDefault","triggerData","selectorElements","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;;;;;;AAOA,EACA,IAAMA,uBAAuB,GAAG,IAAhC;EACA,IAAMC,cAAc,GAAG,eAAvB;gBACmBC;MAAXC,iBAAAA;;EAGR,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,GAAG;EAAA,SAAK,GAAGC,QAAH,CAAYC,IAAZ,CAAiBF,GAAjB,EAAsBG,KAAtB,CAA4B,aAA5B,EAA2C,CAA3C,EAA8CC,WAA9C,EAAL;EAAA,CAAlB;AAEA;EAeA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAAC,OAAO,EAAI;EACxC,MAAIC,QAAQ,GAAGD,OAAO,CAACE,YAAR,CAAqB,aAArB,CAAf;;EAEA,MAAI,CAACD,QAAD,IAAaA,QAAQ,KAAK,GAA9B,EAAmC;EACjC,QAAME,QAAQ,GAAGH,OAAO,CAACE,YAAR,CAAqB,MAArB,CAAjB;EAEAD,IAAAA,QAAQ,GAAGE,QAAQ,IAAIA,QAAQ,KAAK,GAAzB,GAA+BA,QAAQ,CAACC,IAAT,EAA/B,GAAiD,EAA5D;EACD;;EAED,MAAI;EACF,WAAOC,QAAQ,CAACC,aAAT,CAAuBL,QAAvB,IAAmCA,QAAnC,GAA8C,IAArD;EACD,GAFD,CAEE,OAAOM,KAAP,EAAc;EACd,WAAO,IAAP;EACD;EACF,CAdD;;EAgBA,IAAMC,gCAAgC,GAAG,SAAnCA,gCAAmC,CAAAR,OAAO,EAAI;EAClD,MAAI,CAACA,OAAL,EAAc;EACZ,WAAO,CAAP;EACD,GAHiD;;;EAAA,8BAS9CT,MAAM,CAACkB,gBAAP,CAAwBT,OAAxB,CAT8C;EAAA,MAOhDU,kBAPgD,yBAOhDA,kBAPgD;EAAA,MAQhDC,eARgD,yBAQhDA,eARgD;;EAWlD,MAAMC,uBAAuB,GAAGC,UAAU,CAACH,kBAAD,CAA1C;EACA,MAAMI,oBAAoB,GAAGD,UAAU,CAACF,eAAD,CAAvC,CAZkD;;EAelD,MAAI,CAACC,uBAAD,IAA4B,CAACE,oBAAjC,EAAuD;EACrD,WAAO,CAAP;EACD,GAjBiD;;;EAoBlDJ,EAAAA,kBAAkB,GAAGA,kBAAkB,CAACK,KAAnB,CAAyB,GAAzB,EAA8B,CAA9B,CAArB;EACAJ,EAAAA,eAAe,GAAGA,eAAe,CAACI,KAAhB,CAAsB,GAAtB,EAA2B,CAA3B,CAAlB;EAEA,SAAO,CAACF,UAAU,CAACH,kBAAD,CAAV,GAAiCG,UAAU,CAACF,eAAD,CAA5C,IAAiEtB,uBAAxE;EACD,CAxBD;;EA0BA,IAAM2B,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAhB,OAAO,EAAI;EACtCA,EAAAA,OAAO,CAACiB,aAAR,CAAsB,IAAIC,KAAJ,CAAU5B,cAAV,CAAtB;EACD,CAFD;;EAIA,IAAM6B,SAAS,GAAG,SAAZA,SAAY,CAAAzB,GAAG;EAAA,SAAI,CAACA,GAAG,CAAC,CAAD,CAAH,IAAUA,GAAX,EAAgB0B,QAApB;EAAA,CAArB;;EAEA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACrB,OAAD,EAAUsB,QAAV,EAAuB;EAClD,MAAIC,MAAM,GAAG,KAAb;EACA,MAAMC,eAAe,GAAG,CAAxB;EACA,MAAMC,gBAAgB,GAAGH,QAAQ,GAAGE,eAApC;;EACA,WAASE,QAAT,GAAoB;EAClBH,IAAAA,MAAM,GAAG,IAAT;EACAvB,IAAAA,OAAO,CAAC2B,mBAAR,CAA4BrC,cAA5B,EAA4CoC,QAA5C;EACD;;EAED1B,EAAAA,OAAO,CAAC4B,gBAAR,CAAyBtC,cAAzB,EAAyCoC,QAAzC;EACAG,EAAAA,UAAU,CAAC,YAAM;EACf,QAAI,CAACN,MAAL,EAAa;EACXP,MAAAA,oBAAoB,CAAChB,OAAD,CAApB;EACD;EACF,GAJS,EAIPyB,gBAJO,CAAV;EAKD,CAfD;;EAiBA,IAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAACC,aAAD,EAAgBC,MAAhB,EAAwBC,WAAxB,EAAwC;EAC9DC,EAAAA,MAAM,CAACC,IAAP,CAAYF,WAAZ,EACGG,OADH,CACW,UAAAC,QAAQ,EAAI;EACnB,QAAMC,aAAa,GAAGL,WAAW,CAACI,QAAD,CAAjC;EACA,QAAME,KAAK,GAAGP,MAAM,CAACK,QAAD,CAApB;EACA,QAAMG,SAAS,GAAGD,KAAK,IAAIpB,SAAS,CAACoB,KAAD,CAAlB,GAChB,SADgB,GAEhB9C,MAAM,CAAC8C,KAAD,CAFR;;EAIA,QAAI,CAAC,IAAIE,MAAJ,CAAWH,aAAX,EAA0BI,IAA1B,CAA+BF,SAA/B,CAAL,EAAgD;EAC9C,YAAM,IAAIG,KAAJ,CACDZ,aAAa,CAACa,WAAd,EAAH,yBACWP,QADX,2BACuCG,SADvC,sCAEsBF,aAFtB,SADI,CAAN;EAID;EACF,GAdH;EAeD,CAhBD;;EAkBA,IAAMO,SAAS,GAAG,SAAZA,SAAY,CAAAC,QAAQ,EAAI;EAC5B,MAAI,CAACA,QAAL,EAAe;EACb,WAAO,EAAP;EACD;;EAED,SAAO,GAAGC,KAAH,CAASnD,IAAT,CAAckD,QAAd,CAAP;EACD,CAND;;EAgDA,IAAME,MAAM,GAAG,SAATA,MAAS,CAAAhD,OAAO;EAAA,SAAIA,OAAO,CAACiD,YAAZ;EAAA,CAAtB;;EC1IA;;;;;;EAMA,IAAMC,IAAI,GAAG,UAAb;EACA,IAAMC,OAAO,GAAG,OAAhB;EACA,IAAMC,QAAQ,GAAG,aAAjB;EACA,IAAMC,SAAS,SAAOD,QAAtB;EACA,IAAME,YAAY,GAAG,WAArB;EAEA,IAAMC,OAAO,GAAG;EACdC,EAAAA,MAAM,EAAE,IADM;EAEdC,EAAAA,MAAM,EAAE;EAFM,CAAhB;EAKA,IAAMC,WAAW,GAAG;EAClBF,EAAAA,MAAM,EAAE,SADU;EAElBC,EAAAA,MAAM,EAAE;EAFU,CAApB;EAKA,IAAMvC,OAAK,GAAG;EACZyC,EAAAA,IAAI,WAASN,SADD;EAEZO,EAAAA,KAAK,YAAUP,SAFH;EAGZQ,EAAAA,IAAI,WAASR,SAHD;EAIZS,EAAAA,MAAM,aAAWT,SAJL;EAKZU,EAAAA,cAAc,YAAUV,SAAV,GAAsBC;EALxB,CAAd;EAQA,IAAMU,SAAS,GAAG;EAChBL,EAAAA,IAAI,EAAE,MADU;EAEhBM,EAAAA,QAAQ,EAAE,UAFM;EAGhBC,EAAAA,UAAU,EAAE,YAHI;EAIhBC,EAAAA,SAAS,EAAE;EAJK,CAAlB;EAOA,IAAMC,SAAS,GAAG;EAChBC,EAAAA,KAAK,EAAE,OADS;EAEhBC,EAAAA,MAAM,EAAE;EAFQ,CAAlB;EAKA,IAAMC,QAAQ,GAAG;EACfC,EAAAA,OAAO,EAAE,oBADM;EAEfC,EAAAA,WAAW,EAAE;EAGf;;;;;;EALiB,CAAjB;;MAWMC;;;EACJ,oBAAY1E,OAAZ,EAAqBgC,MAArB,EAA6B;EAC3B,SAAK2C,gBAAL,GAAwB,KAAxB;EACA,SAAKC,QAAL,GAAgB5E,OAAhB;EACA,SAAK6E,OAAL,GAAe,KAAKC,UAAL,CAAgB9C,MAAhB,CAAf;EACA,SAAK+C,aAAL,GAAqBlC,SAAS,CAACmC,cAAc,CAACC,IAAf,CAC7B,wCAAmCjF,OAAO,CAACkF,EAA3C,4DAC0ClF,OAAO,CAACkF,EADlD,SAD6B,CAAD,CAA9B;EAKA,QAAMC,UAAU,GAAGtC,SAAS,CAACmC,cAAc,CAACC,IAAf,CAAoBV,QAAQ,CAACE,WAA7B,CAAD,CAA5B;;EACA,SAAK,IAAIW,CAAC,GAAG,CAAR,EAAWC,GAAG,GAAGF,UAAU,CAACG,MAAjC,EAAyCF,CAAC,GAAGC,GAA7C,EAAkDD,CAAC,EAAnD,EAAuD;EACrD,UAAMG,IAAI,GAAGJ,UAAU,CAACC,CAAD,CAAvB;EACA,UAAMnF,QAAQ,GAAGF,sBAAsB,CAACwF,IAAD,CAAvC;EACA,UAAMC,aAAa,GAAG3C,SAAS,CAACmC,cAAc,CAACC,IAAf,CAAoBhF,QAApB,CAAD,CAAT,CACnBwF,MADmB,CACZ,UAAAC,SAAS;EAAA,eAAIA,SAAS,KAAK1F,OAAlB;EAAA,OADG,CAAtB;;EAGA,UAAIC,QAAQ,KAAK,IAAb,IAAqBuF,aAAa,CAACF,MAAvC,EAA+C;EAC7C,aAAKK,SAAL,GAAiB1F,QAAjB;;EACA,aAAK8E,aAAL,CAAmBa,IAAnB,CAAwBL,IAAxB;EACD;EACF;;EAED,SAAKM,OAAL,GAAe,KAAKhB,OAAL,CAAapB,MAAb,GAAsB,KAAKqC,UAAL,EAAtB,GAA0C,IAAzD;;EAEA,QAAI,CAAC,KAAKjB,OAAL,CAAapB,MAAlB,EAA0B;EACxB,WAAKsC,yBAAL,CAA+B,KAAKnB,QAApC,EAA8C,KAAKG,aAAnD;EACD;;EAED,QAAI,KAAKF,OAAL,CAAarB,MAAjB,EAAyB;EACvB,WAAKA,MAAL;EACD;;EAEDwC,IAAAA,IAAI,CAACC,OAAL,CAAajG,OAAb,EAAsBoD,QAAtB,EAAgC,IAAhC;EACD;;;;;EAYD;WAEAI,SAAA,kBAAS;EACP,QAAI,KAAKoB,QAAL,CAAcsB,SAAd,CAAwBC,QAAxB,CAAiCnC,SAAS,CAACL,IAA3C,CAAJ,EAAsD;EACpD,WAAKyC,IAAL;EACD,KAFD,MAEO;EACL,WAAKC,IAAL;EACD;EACF;;WAEDA,OAAA,gBAAO;EAAA;;EACL,QAAI,KAAK1B,gBAAL,IACF,KAAKC,QAAL,CAAcsB,SAAd,CAAwBC,QAAxB,CAAiCnC,SAAS,CAACL,IAA3C,CADF,EACoD;EAClD;EACD;;EAED,QAAI2C,OAAJ;EACA,QAAIC,WAAJ;;EAEA,QAAI,KAAKV,OAAT,EAAkB;EAChBS,MAAAA,OAAO,GAAGzD,SAAS,CAACmC,cAAc,CAACC,IAAf,CAAoBV,QAAQ,CAACC,OAA7B,EAAsC,KAAKqB,OAA3C,CAAD,CAAT,CACPJ,MADO,CACA,UAAAF,IAAI,EAAI;EACd,YAAI,OAAO,KAAI,CAACV,OAAL,CAAapB,MAApB,KAA+B,QAAnC,EAA6C;EAC3C,iBAAO8B,IAAI,CAACrF,YAAL,CAAkB,aAAlB,MAAqC,KAAI,CAAC2E,OAAL,CAAapB,MAAzD;EACD;;EAED,eAAO8B,IAAI,CAACW,SAAL,CAAeC,QAAf,CAAwBnC,SAAS,CAACC,QAAlC,CAAP;EACD,OAPO,CAAV;;EASA,UAAIqC,OAAO,CAAChB,MAAR,KAAmB,CAAvB,EAA0B;EACxBgB,QAAAA,OAAO,GAAG,IAAV;EACD;EACF;;EAED,QAAME,SAAS,GAAGxB,cAAc,CAACyB,OAAf,CAAuB,KAAKd,SAA5B,CAAlB;;EACA,QAAIW,OAAJ,EAAa;EACX,UAAMI,cAAc,GAAGJ,OAAO,CAACb,MAAR,CAAe,UAAAF,IAAI;EAAA,eAAIiB,SAAS,KAAKjB,IAAlB;EAAA,OAAnB,CAAvB;EACAgB,MAAAA,WAAW,GAAGG,cAAc,CAAC,CAAD,CAAd,GAAoBV,IAAI,CAACW,OAAL,CAAaD,cAAc,CAAC,CAAD,CAA3B,EAAgCtD,QAAhC,CAApB,GAAgE,IAA9E;;EAEA,UAAImD,WAAW,IAAIA,WAAW,CAAC5B,gBAA/B,EAAiD;EAC/C;EACD;EACF;;EAED,QAAMiC,UAAU,GAAGC,YAAY,CAACC,OAAb,CAAqB,KAAKlC,QAA1B,EAAoC1D,OAAK,CAACyC,IAA1C,CAAnB;;EACA,QAAIiD,UAAU,CAACG,gBAAf,EAAiC;EAC/B;EACD;;EAED,QAAIT,OAAJ,EAAa;EACXA,MAAAA,OAAO,CAAClE,OAAR,CAAgB,UAAA4E,UAAU,EAAI;EAC5B,YAAIR,SAAS,KAAKQ,UAAlB,EAA8B;EAC5BtC,UAAAA,QAAQ,CAACuC,kBAAT,CAA4BD,UAA5B,EAAwC,MAAxC;EACD;;EAED,YAAI,CAACT,WAAL,EAAkB;EAChBP,UAAAA,IAAI,CAACC,OAAL,CAAae,UAAb,EAAyB5D,QAAzB,EAAmC,IAAnC;EACD;EACF,OARD;EASD;;EAED,QAAM8D,SAAS,GAAG,KAAKC,aAAL,EAAlB;;EAEA,SAAKvC,QAAL,CAAcsB,SAAd,CAAwBkB,MAAxB,CAA+BpD,SAAS,CAACC,QAAzC;;EACA,SAAKW,QAAL,CAAcsB,SAAd,CAAwBmB,GAAxB,CAA4BrD,SAAS,CAACE,UAAtC;;EAEA,SAAKU,QAAL,CAAc0C,KAAd,CAAoBJ,SAApB,IAAiC,CAAjC;;EAEA,QAAI,KAAKnC,aAAL,CAAmBO,MAAvB,EAA+B;EAC7B,WAAKP,aAAL,CAAmB3C,OAAnB,CAA2B,UAAApC,OAAO,EAAI;EACpCA,QAAAA,OAAO,CAACkG,SAAR,CAAkBkB,MAAlB,CAAyBpD,SAAS,CAACG,SAAnC;EACAnE,QAAAA,OAAO,CAACuH,YAAR,CAAqB,eAArB,EAAsC,IAAtC;EACD,OAHD;EAID;;EAED,SAAKC,gBAAL,CAAsB,IAAtB;;EAEA,QAAMC,QAAQ,GAAG,SAAXA,QAAW,GAAM;EACrB,MAAA,KAAI,CAAC7C,QAAL,CAAcsB,SAAd,CAAwBkB,MAAxB,CAA+BpD,SAAS,CAACE,UAAzC;;EACA,MAAA,KAAI,CAACU,QAAL,CAAcsB,SAAd,CAAwBmB,GAAxB,CAA4BrD,SAAS,CAACC,QAAtC;;EACA,MAAA,KAAI,CAACW,QAAL,CAAcsB,SAAd,CAAwBmB,GAAxB,CAA4BrD,SAAS,CAACL,IAAtC;;EAEA,MAAA,KAAI,CAACiB,QAAL,CAAc0C,KAAd,CAAoBJ,SAApB,IAAiC,EAAjC;;EAEA,MAAA,KAAI,CAACM,gBAAL,CAAsB,KAAtB;;EAEAX,MAAAA,YAAY,CAACC,OAAb,CAAqB,KAAI,CAAClC,QAA1B,EAAoC1D,OAAK,CAAC0C,KAA1C;EACD,KAVD;;EAYA,QAAM8D,oBAAoB,GAAGR,SAAS,CAAC,CAAD,CAAT,CAAatE,WAAb,KAA6BsE,SAAS,CAACnE,KAAV,CAAgB,CAAhB,CAA1D;EACA,QAAM4E,UAAU,cAAYD,oBAA5B;EACA,QAAMhH,kBAAkB,GAAGF,gCAAgC,CAAC,KAAKoE,QAAN,CAA3D;EAEAiC,IAAAA,YAAY,CAACe,GAAb,CAAiB,KAAKhD,QAAtB,EAAgCtF,cAAhC,EAAgDmI,QAAhD;EAEApG,IAAAA,oBAAoB,CAAC,KAAKuD,QAAN,EAAgBlE,kBAAhB,CAApB;EACA,SAAKkE,QAAL,CAAc0C,KAAd,CAAoBJ,SAApB,IAAoC,KAAKtC,QAAL,CAAc+C,UAAd,CAApC;EACD;;WAEDvB,OAAA,gBAAO;EAAA;;EACL,QAAI,KAAKzB,gBAAL,IACF,CAAC,KAAKC,QAAL,CAAcsB,SAAd,CAAwBC,QAAxB,CAAiCnC,SAAS,CAACL,IAA3C,CADH,EACqD;EACnD;EACD;;EAED,QAAMiD,UAAU,GAAGC,YAAY,CAACC,OAAb,CAAqB,KAAKlC,QAA1B,EAAoC1D,OAAK,CAAC2C,IAA1C,CAAnB;;EACA,QAAI+C,UAAU,CAACG,gBAAf,EAAiC;EAC/B;EACD;;EAED,QAAMG,SAAS,GAAG,KAAKC,aAAL,EAAlB;;EAEA,SAAKvC,QAAL,CAAc0C,KAAd,CAAoBJ,SAApB,IAAoC,KAAKtC,QAAL,CAAciD,qBAAd,GAAsCX,SAAtC,CAApC;EAEAlE,IAAAA,MAAM,CAAC,KAAK4B,QAAN,CAAN;;EAEA,SAAKA,QAAL,CAAcsB,SAAd,CAAwBmB,GAAxB,CAA4BrD,SAAS,CAACE,UAAtC;;EACA,SAAKU,QAAL,CAAcsB,SAAd,CAAwBkB,MAAxB,CAA+BpD,SAAS,CAACC,QAAzC;;EACA,SAAKW,QAAL,CAAcsB,SAAd,CAAwBkB,MAAxB,CAA+BpD,SAAS,CAACL,IAAzC;;EAEA,QAAMmE,kBAAkB,GAAG,KAAK/C,aAAL,CAAmBO,MAA9C;;EACA,QAAIwC,kBAAkB,GAAG,CAAzB,EAA4B;EAC1B,WAAK,IAAI1C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0C,kBAApB,EAAwC1C,CAAC,EAAzC,EAA6C;EAC3C,YAAM0B,OAAO,GAAG,KAAK/B,aAAL,CAAmBK,CAAnB,CAAhB;EACA,YAAMnF,QAAQ,GAAGF,sBAAsB,CAAC+G,OAAD,CAAvC;;EAEA,YAAI7G,QAAQ,KAAK,IAAjB,EAAuB;EACrB,cAAMsF,IAAI,GAAGP,cAAc,CAACyB,OAAf,CAAuBxG,QAAvB,CAAb;;EAEA,cAAI,CAACsF,IAAI,CAACW,SAAL,CAAeC,QAAf,CAAwBnC,SAAS,CAACL,IAAlC,CAAL,EAA8C;EAC5CmD,YAAAA,OAAO,CAACZ,SAAR,CAAkBmB,GAAlB,CAAsBrD,SAAS,CAACG,SAAhC;EACA2C,YAAAA,OAAO,CAACS,YAAR,CAAqB,eAArB,EAAsC,KAAtC;EACD;EACF;EACF;EACF;;EAED,SAAKC,gBAAL,CAAsB,IAAtB;;EAEA,QAAMC,QAAQ,GAAG,SAAXA,QAAW,GAAM;EACrB,MAAA,MAAI,CAACD,gBAAL,CAAsB,KAAtB;;EACA,MAAA,MAAI,CAAC5C,QAAL,CAAcsB,SAAd,CAAwBkB,MAAxB,CAA+BpD,SAAS,CAACE,UAAzC;;EACA,MAAA,MAAI,CAACU,QAAL,CAAcsB,SAAd,CAAwBmB,GAAxB,CAA4BrD,SAAS,CAACC,QAAtC;;EACA4C,MAAAA,YAAY,CAACC,OAAb,CAAqB,MAAI,CAAClC,QAA1B,EAAoC1D,OAAK,CAAC4C,MAA1C;EACD,KALD;;EAOA,SAAKc,QAAL,CAAc0C,KAAd,CAAoBJ,SAApB,IAAiC,EAAjC;EACA,QAAMxG,kBAAkB,GAAGF,gCAAgC,CAAC,KAAKoE,QAAN,CAA3D;EAEAiC,IAAAA,YAAY,CAACe,GAAb,CAAiB,KAAKhD,QAAtB,EAAgCtF,cAAhC,EAAgDmI,QAAhD;EACApG,IAAAA,oBAAoB,CAAC,KAAKuD,QAAN,EAAgBlE,kBAAhB,CAApB;EACD;;WAED8G,mBAAA,0BAAiBO,eAAjB,EAAkC;EAChC,SAAKpD,gBAAL,GAAwBoD,eAAxB;EACD;;WAEDC,UAAA,mBAAU;EACRhC,IAAAA,IAAI,CAACiC,UAAL,CAAgB,KAAKrD,QAArB,EAA+BxB,QAA/B;EAEA,SAAKyB,OAAL,GAAe,IAAf;EACA,SAAKgB,OAAL,GAAe,IAAf;EACA,SAAKjB,QAAL,GAAgB,IAAhB;EACA,SAAKG,aAAL,GAAqB,IAArB;EACA,SAAKJ,gBAAL,GAAwB,IAAxB;EACD;;;WAIDG,aAAA,oBAAW9C,MAAX,EAAmB;EACjBA,IAAAA,MAAM,qBACDuB,OADC,EAEDvB,MAFC,CAAN;EAIAA,IAAAA,MAAM,CAACwB,MAAP,GAAgB0E,OAAO,CAAClG,MAAM,CAACwB,MAAR,CAAvB,CALiB;;EAMjB1B,IAAAA,eAAe,CAACoB,IAAD,EAAOlB,MAAP,EAAe0B,WAAf,CAAf;EACA,WAAO1B,MAAP;EACD;;WAEDmF,gBAAA,yBAAgB;EACd,QAAMgB,QAAQ,GAAG,KAAKvD,QAAL,CAAcsB,SAAd,CAAwBC,QAAxB,CAAiC/B,SAAS,CAACC,KAA3C,CAAjB;;EACA,WAAO8D,QAAQ,GAAG/D,SAAS,CAACC,KAAb,GAAqBD,SAAS,CAACE,MAA9C;EACD;;WAEDwB,aAAA,sBAAa;EAAA;;EAAA,QACLrC,MADK,GACM,KAAKoB,OADX,CACLpB,MADK;;EAGX,QAAItC,SAAS,CAACsC,MAAD,CAAb,EAAuB;EACrB;EACA,UAAI,OAAOA,MAAM,CAAC2E,MAAd,KAAyB,WAAzB,IAAwC,OAAO3E,MAAM,CAAC,CAAD,CAAb,KAAqB,WAAjE,EAA8E;EAC5EA,QAAAA,MAAM,GAAGA,MAAM,CAAC,CAAD,CAAf;EACD;EACF,KALD,MAKO;EACLA,MAAAA,MAAM,GAAGuB,cAAc,CAACyB,OAAf,CAAuBhD,MAAvB,CAAT;EACD;;EAED,QAAMxD,QAAQ,iDAA4CwD,MAA5C,QAAd;EAEAZ,IAAAA,SAAS,CAACmC,cAAc,CAACC,IAAf,CAAoBhF,QAApB,EAA8BwD,MAA9B,CAAD,CAAT,CACGrB,OADH,CACW,UAAApC,OAAO,EAAI;EAClB,MAAA,MAAI,CAAC+F,yBAAL,CACErB,QAAQ,CAAC2D,qBAAT,CAA+BrI,OAA/B,CADF,EAEE,CAACA,OAAD,CAFF;EAID,KANH;EAQA,WAAOyD,MAAP;EACD;;WAEDsC,4BAAA,mCAA0B/F,OAA1B,EAAmCsI,YAAnC,EAAiD;EAC/C,QAAItI,OAAJ,EAAa;EACX,UAAMuI,MAAM,GAAGvI,OAAO,CAACkG,SAAR,CAAkBC,QAAlB,CAA2BnC,SAAS,CAACL,IAArC,CAAf;;EAEA,UAAI2E,YAAY,CAAChD,MAAjB,EAAyB;EACvBgD,QAAAA,YAAY,CAAClG,OAAb,CAAqB,UAAAmD,IAAI,EAAI;EAC3B,cAAIgD,MAAJ,EAAY;EACVhD,YAAAA,IAAI,CAACW,SAAL,CAAekB,MAAf,CAAsBpD,SAAS,CAACG,SAAhC;EACD,WAFD,MAEO;EACLoB,YAAAA,IAAI,CAACW,SAAL,CAAemB,GAAf,CAAmBrD,SAAS,CAACG,SAA7B;EACD;;EAEDoB,UAAAA,IAAI,CAACgC,YAAL,CAAkB,eAAlB,EAAmCgB,MAAnC;EACD,SARD;EASD;EACF;EACF;;;aAIMF,wBAAP,+BAA6BrI,OAA7B,EAAsC;EACpC,QAAMC,QAAQ,GAAGF,sBAAsB,CAACC,OAAD,CAAvC;EACA,WAAOC,QAAQ,GAAG+E,cAAc,CAACyB,OAAf,CAAuBxG,QAAvB,CAAH,GAAsC,IAArD;EACD;;aAEMgH,qBAAP,4BAA0BjH,OAA1B,EAAmCgC,MAAnC,EAA2C;EACzC,QAAIwG,IAAI,GAAGxC,IAAI,CAACW,OAAL,CAAa3G,OAAb,EAAsBoD,QAAtB,CAAX;;EACA,QAAMyB,OAAO,qBACRtB,OADQ,EAERkF,WAAW,CAACC,iBAAZ,CAA8B1I,OAA9B,CAFQ,EAGR,OAAOgC,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAHxC,CAAb;;EAMA,QAAI,CAACwG,IAAD,IAAS3D,OAAO,CAACrB,MAAjB,IAA2B,YAAYd,IAAZ,CAAiBV,MAAjB,CAA/B,EAAyD;EACvD6C,MAAAA,OAAO,CAACrB,MAAR,GAAiB,KAAjB;EACD;;EAED,QAAI,CAACgF,IAAL,EAAW;EACTA,MAAAA,IAAI,GAAG,IAAI9D,QAAJ,CAAa1E,OAAb,EAAsB6E,OAAtB,CAAP;EACD;;EAED,QAAI,OAAO7C,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,UAAI,OAAOwG,IAAI,CAACxG,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,cAAM,IAAI2G,SAAJ,wBAAkC3G,MAAlC,QAAN;EACD;;EAEDwG,MAAAA,IAAI,CAACxG,MAAD,CAAJ;EACD;EACF;;aAEM4G,mBAAP,0BAAwB5G,MAAxB,EAAgC;EAC9B,WAAO,KAAK6G,IAAL,CAAU,YAAY;EAC3BnE,MAAAA,QAAQ,CAACuC,kBAAT,CAA4B,IAA5B,EAAkCjF,MAAlC;EACD,KAFM,CAAP;EAGD;;aAEM8G,eAAP,sBAAoB9I,OAApB,EAA6B;EAC3B,WAAOgG,IAAI,CAACW,OAAL,CAAa3G,OAAb,EAAsBoD,QAAtB,CAAP;EACD;;;;0BAnRoB;EACnB,aAAOD,OAAP;EACD;;;0BAEoB;EACnB,aAAOI,OAAP;EACD;;;;;EAgRH;;;;;;;EAMAsD,YAAY,CAACkC,EAAb,CAAgB1I,QAAhB,EAA0Ba,OAAK,CAAC6C,cAAhC,EAAgDQ,QAAQ,CAACE,WAAzD,EAAsE,UAAUuE,KAAV,EAAiB;EACrF;EACA,MAAIA,KAAK,CAACC,MAAN,CAAaC,OAAb,KAAyB,GAA7B,EAAkC;EAChCF,IAAAA,KAAK,CAACG,cAAN;EACD;;EAED,MAAMC,WAAW,GAAGX,WAAW,CAACC,iBAAZ,CAA8B,IAA9B,CAApB;EACA,MAAMzI,QAAQ,GAAGF,sBAAsB,CAAC,IAAD,CAAvC;EACA,MAAMsJ,gBAAgB,GAAGxG,SAAS,CAACmC,cAAc,CAACC,IAAf,CAAoBhF,QAApB,CAAD,CAAlC;EAEAoJ,EAAAA,gBAAgB,CAACjH,OAAjB,CAAyB,UAAApC,OAAO,EAAI;EAClC,QAAMwI,IAAI,GAAGxC,IAAI,CAACW,OAAL,CAAa3G,OAAb,EAAsBoD,QAAtB,CAAb;EACA,QAAIpB,MAAJ;;EACA,QAAIwG,IAAJ,EAAU;EACR;EACA,UAAIA,IAAI,CAAC3C,OAAL,KAAiB,IAAjB,IAAyB,OAAOuD,WAAW,CAAC3F,MAAnB,KAA8B,QAA3D,EAAqE;EACnE+E,QAAAA,IAAI,CAAC3D,OAAL,CAAapB,MAAb,GAAsB2F,WAAW,CAAC3F,MAAlC;EACA+E,QAAAA,IAAI,CAAC3C,OAAL,GAAe2C,IAAI,CAAC1C,UAAL,EAAf;EACD;;EAED9D,MAAAA,MAAM,GAAG,QAAT;EACD,KARD,MAQO;EACLA,MAAAA,MAAM,GAAGoH,WAAT;EACD;;EAED1E,IAAAA,QAAQ,CAACuC,kBAAT,CAA4BjH,OAA5B,EAAqCgC,MAArC;EACD,GAhBD;EAiBD,CA3BD;EA6BA;;;;;;;EAOA,IAAI,OAAOsH,MAAP,KAAa,WAAjB,EAA8B;EAC5B,MAAMC,kBAAkB,GAAGD,MAAC,CAACE,EAAF,CAAKtG,IAAL,CAA3B;EACAoG,EAAAA,MAAC,CAACE,EAAF,CAAKtG,IAAL,IAAawB,QAAQ,CAACkE,gBAAtB;EACAU,EAAAA,MAAC,CAACE,EAAF,CAAKtG,IAAL,EAAWuG,WAAX,GAAyB/E,QAAzB;;EACA4E,EAAAA,MAAC,CAACE,EAAF,CAAKtG,IAAL,EAAWwG,UAAX,GAAwB,YAAM;EAC5BJ,IAAAA,MAAC,CAACE,EAAF,CAAKtG,IAAL,IAAaqG,kBAAb;EACA,WAAO7E,QAAQ,CAACkE,gBAAhB;EACD,GAHD;EAID;;;;;;;;"}
\ No newline at end of file +{"version":3,"file":"collapse.js","sources":["../src/util/index.js","../src/collapse.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","reflow","offsetHeight","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","toggle","parent","DefaultType","Event","SHOW","SHOWN","HIDE","HIDDEN","CLICK_DATA_API","ClassName","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","Selector","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_element","_config","_getConfig","_triggerArray","SelectorEngine","find","id","toggleList","i","len","length","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","Data","setData","classList","contains","hide","show","actives","activesData","container","findOne","tempActiveData","getData","startEvent","EventHandler","trigger","defaultPrevented","elemActive","_collapseInterface","dimension","_getDimension","remove","add","style","setAttribute","setTransitioning","complete","capitalizedDimension","scrollSize","one","getBoundingClientRect","triggerArrayLength","isTransitioning","dispose","removeData","Boolean","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","data","Manipulator","getDataAttributes","TypeError","_jQueryInterface","each","_getInstance","on","event","target","tagName","preventDefault","triggerData","selectorElements","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/dom/eventhandler.js b/js/dist/dom/eventhandler.js index 18cbf23567..5c8baaeed9 100644 --- a/js/dist/dom/eventhandler.js +++ b/js/dist/dom/eventhandler.js @@ -4,12 +4,10 @@ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./polyfill.js')) : - typeof define === 'function' && define.amd ? define(['./polyfill.js'], factory) : - (global = global || self, global.EventHandler = factory(global.Polyfill)); -}(this, function (Polyfill) { 'use strict'; - - Polyfill = Polyfill && Polyfill.hasOwnProperty('default') ? Polyfill['default'] : Polyfill; + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.EventHandler = factory()); +}(this, function () { 'use strict'; /** * -------------------------------------------------------------------------- @@ -17,8 +15,163 @@ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ + var MAX_UID = 1000000; var _window = window, jQuery = _window.jQuery; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + /** + * -------------------------------------------------------------------------- + * Public Util Api + * -------------------------------------------------------------------------- + */ + + + var getUID = function getUID(prefix) { + do { + // eslint-disable-next-line no-bitwise + prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here + } while (document.getElementById(prefix)); + + return prefix; + }; + + /* istanbul ignore file */ + var _Element$prototype = Element.prototype, + matches = _Element$prototype.matches, + closest = _Element$prototype.closest; + var find = Element.prototype.querySelectorAll; + var findOne = Element.prototype.querySelector; + + var createCustomEvent = function createCustomEvent(eventName, params) { + var cEvent = new CustomEvent(eventName, params); + return cEvent; + }; + + if (typeof window.CustomEvent !== 'function') { + createCustomEvent = function createCustomEvent(eventName, params) { + params = params || { + bubbles: false, + cancelable: false, + detail: null + }; + var evt = document.createEvent('CustomEvent'); + evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail); + return evt; + }; + } + + var workingDefaultPrevented = function () { + var e = document.createEvent('CustomEvent'); + e.initEvent('Bootstrap', true, true); + e.preventDefault(); + return e.defaultPrevented; + }(); + + if (!workingDefaultPrevented) { + var origPreventDefault = Event.prototype.preventDefault; + + Event.prototype.preventDefault = function () { + if (!this.cancelable) { + return; + } + + origPreventDefault.call(this); + Object.defineProperty(this, 'defaultPrevented', { + get: function get() { + return true; + }, + configurable: true + }); + }; + } // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached + + + var defaultPreventedPreservedOnDispatch = function () { + var e = createCustomEvent('Bootstrap', { + cancelable: true + }); + var element = document.createElement('div'); + element.addEventListener('Bootstrap', function () { + return null; + }); + e.preventDefault(); + element.dispatchEvent(e); + return e.defaultPrevented; + }(); + + if (!matches) { + matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; + } + + if (!closest) { + closest = function closest(selector) { + var element = this; + + do { + if (matches.call(element, selector)) { + return element; + } + + element = element.parentElement || element.parentNode; + } while (element !== null && element.nodeType === 1); + + return null; + }; + } + + var scopeSelectorRegex = /:scope\b/; + + var supportScopeQuery = function () { + var element = document.createElement('div'); + + try { + element.querySelectorAll(':scope *'); + } catch (error) { + return false; + } + + return true; + }(); + + if (!supportScopeQuery) { + find = function find(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelectorAll(selector); + } + + var hasId = Boolean(this.id); + + if (!hasId) { + this.id = getUID('scope'); + } + + var nodeList = null; + + try { + selector = selector.replace(scopeSelectorRegex, "#" + this.id); + nodeList = this.querySelectorAll(selector); + } finally { + if (!hasId) { + this.removeAttribute('id'); + } + } + + return nodeList; + }; + + findOne = function findOne(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelector(selector); + } + + var matches = find.call(this, selector); + + if (typeof matches[0] !== 'undefined') { + return matches[0]; + } + + return null; + }; + } /** * -------------------------------------------------------------------------- @@ -110,10 +263,8 @@ delegationSelector = null; } - var uidList = Object.keys(events); - - for (var i = 0; i < uidList.length; i++) { - var uid = uidList[i]; + for (var _i = 0, _Object$keys = Object.keys(events); _i < _Object$keys.length; _i++) { + var uid = _Object$keys[_i]; var event = events[uid]; if (event.originalHandler === handler && event.delegationSelector === delegationSelector) { @@ -272,7 +423,7 @@ evt = document.createEvent('HTMLEvents'); evt.initEvent(typeEvent, bubbles, true); } else { - evt = new CustomEvent(event, { + evt = createCustomEvent(event, { bubbles: bubbles, cancelable: true }); @@ -292,7 +443,7 @@ if (defaultPrevented) { evt.preventDefault(); - if (!Polyfill.defaultPreventedPreservedOnDispatch) { + if (!defaultPreventedPreservedOnDispatch) { Object.defineProperty(evt, 'defaultPrevented', { get: function get() { return true; diff --git a/js/dist/dom/eventhandler.js.map b/js/dist/dom/eventhandler.js.map index 7fcf6b072c..c554416064 100644 --- a/js/dist/dom/eventhandler.js.map +++ b/js/dist/dom/eventhandler.js.map @@ -1 +1 @@ -{"version":3,"file":"eventhandler.js","sources":["../../src/util/index.js","../../src/dom/eventHandler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!Polyfill.defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n"],"names":["window","jQuery","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","element","uid","getEvent","fixEvent","event","which","test","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","i","length","findHandler","events","delegationSelector","uidList","Object","keys","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","isNative","indexOf","addHandler","handlers","previousFn","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","forEach","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","$","Event","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","document","createEvent","initEvent","CustomEvent","cancelable","key","defineProperty","get","preventDefault","Polyfill","defaultPreventedPreservedOnDispatch","dispatchEvent"],"mappings":";;;;;;;;;;;;;EAAA;;;;;;AAOA,gBAGmBA;MAAXC,iBAAAA;;ECVR;;;;;;AAOA,EAKA;;;;;;EAMA,IAAMC,cAAc,GAAG,oBAAvB;EACA,IAAMC,cAAc,GAAG,MAAvB;EACA,IAAMC,aAAa,GAAG,MAAtB;EACA,IAAMC,aAAa,GAAG,QAAtB;EACA,IAAMC,aAAa,GAAG,EAAtB;;EACA,IAAIC,QAAQ,GAAG,CAAf;EACA,IAAMC,YAAY,GAAG;EACnBC,EAAAA,UAAU,EAAE,WADO;EAEnBC,EAAAA,UAAU,EAAE;EAFO,CAArB;EAIA,IAAMC,YAAY,GAAG,CACnB,OADmB,EAEnB,UAFmB,EAGnB,SAHmB,EAInB,WAJmB,EAKnB,aALmB,EAMnB,YANmB,EAOnB,gBAPmB,EAQnB,WARmB,EASnB,UATmB,EAUnB,WAVmB,EAWnB,aAXmB,EAYnB,WAZmB,EAanB,SAbmB,EAcnB,UAdmB,EAenB,OAfmB,EAgBnB,mBAhBmB,EAiBnB,YAjBmB,EAkBnB,WAlBmB,EAmBnB,UAnBmB,EAoBnB,aApBmB,EAqBnB,aArBmB,EAsBnB,aAtBmB,EAuBnB,WAvBmB,EAwBnB,cAxBmB,EAyBnB,eAzBmB,EA0BnB,cA1BmB,EA2BnB,eA3BmB,EA4BnB,YA5BmB,EA6BnB,OA7BmB,EA8BnB,MA9BmB,EA+BnB,QA/BmB,EAgCnB,OAhCmB,EAiCnB,QAjCmB,EAkCnB,QAlCmB,EAmCnB,SAnCmB,EAoCnB,UApCmB,EAqCnB,MArCmB,EAsCnB,QAtCmB,EAuCnB,cAvCmB,EAwCnB,QAxCmB,EAyCnB,MAzCmB,EA0CnB,kBA1CmB,EA2CnB,kBA3CmB,EA4CnB,OA5CmB,EA6CnB,OA7CmB,EA8CnB,QA9CmB,CAArB;EAiDA;;;;;;EAMA,SAASC,WAAT,CAAqBC,OAArB,EAA8BC,GAA9B,EAAmC;EACjC,SAAOA,GAAG,IAAOA,GAAP,UAAeP,QAAQ,EAA1B,IAAkCM,OAAO,CAACN,QAA1C,IAAsDA,QAAQ,EAArE;EACD;;EAED,SAASQ,QAAT,CAAkBF,OAAlB,EAA2B;EACzB,MAAMC,GAAG,GAAGF,WAAW,CAACC,OAAD,CAAvB;EAEAA,EAAAA,OAAO,CAACN,QAAR,GAAmBO,GAAnB;EACAR,EAAAA,aAAa,CAACQ,GAAD,CAAb,GAAqBR,aAAa,CAACQ,GAAD,CAAb,IAAsB,EAA3C;EAEA,SAAOR,aAAa,CAACQ,GAAD,CAApB;EACD;;EAED,SAASE,QAAT,CAAkBC,KAAlB,EAAyBJ,OAAzB,EAAkC;EAChC;EACA,MAAII,KAAK,CAACC,KAAN,KAAgB,IAAhB,IAAwBd,aAAa,CAACe,IAAd,CAAmBF,KAAK,CAACG,IAAzB,CAA5B,EAA4D;EAC1DH,IAAAA,KAAK,CAACC,KAAN,GAAcD,KAAK,CAACI,QAAN,KAAmB,IAAnB,GAA0BJ,KAAK,CAACK,OAAhC,GAA0CL,KAAK,CAACI,QAA9D;EACD;;EAEDJ,EAAAA,KAAK,CAACM,cAAN,GAAuBV,OAAvB;EACD;;EAED,SAASW,gBAAT,CAA0BX,OAA1B,EAAmCY,EAAnC,EAAuC;EACrC,SAAO,SAASC,OAAT,CAAiBT,KAAjB,EAAwB;EAC7BD,IAAAA,QAAQ,CAACC,KAAD,EAAQJ,OAAR,CAAR;;EACA,QAAIa,OAAO,CAACC,MAAZ,EAAoB;EAClBC,MAAAA,YAAY,CAACC,GAAb,CAAiBhB,OAAjB,EAA0BI,KAAK,CAACG,IAAhC,EAAsCK,EAAtC;EACD;;EAED,WAAOA,EAAE,CAACK,KAAH,CAASjB,OAAT,EAAkB,CAACI,KAAD,CAAlB,CAAP;EACD,GAPD;EAQD;;EAED,SAASc,0BAAT,CAAoClB,OAApC,EAA6CmB,QAA7C,EAAuDP,EAAvD,EAA2D;EACzD,SAAO,SAASC,OAAT,CAAiBT,KAAjB,EAAwB;EAC7B,QAAMgB,WAAW,GAAGpB,OAAO,CAACqB,gBAAR,CAAyBF,QAAzB,CAApB;;EAEA,aAAWG,MAAX,GAAsBlB,KAAtB,CAAWkB,MAAX,EAA6BA,MAAM,IAAIA,MAAM,KAAK,IAAlD,EAAwDA,MAAM,GAAGA,MAAM,CAACC,UAAxE,EAAoF;EAClF,WAAK,IAAIC,CAAC,GAAGJ,WAAW,CAACK,MAAzB,EAAiCD,CAAC,EAAlC,GAAuC;EACrC,YAAIJ,WAAW,CAACI,CAAD,CAAX,KAAmBF,MAAvB,EAA+B;EAC7BnB,UAAAA,QAAQ,CAACC,KAAD,EAAQkB,MAAR,CAAR;;EAEA,cAAIT,OAAO,CAACC,MAAZ,EAAoB;EAClBC,YAAAA,YAAY,CAACC,GAAb,CAAiBhB,OAAjB,EAA0BI,KAAK,CAACG,IAAhC,EAAsCK,EAAtC;EACD;;EAED,iBAAOA,EAAE,CAACK,KAAH,CAASK,MAAT,EAAiB,CAAClB,KAAD,CAAjB,CAAP;EACD;EACF;EACF,KAf4B;;;EAkB7B,WAAO,IAAP;EACD,GAnBD;EAoBD;;EAED,SAASsB,WAAT,CAAqBC,MAArB,EAA6Bd,OAA7B,EAAsCe,kBAAtC,EAAiE;EAAA,MAA3BA,kBAA2B;EAA3BA,IAAAA,kBAA2B,GAAN,IAAM;EAAA;;EAC/D,MAAMC,OAAO,GAAGC,MAAM,CAACC,IAAP,CAAYJ,MAAZ,CAAhB;;EAEA,OAAK,IAAIH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGK,OAAO,CAACJ,MAA5B,EAAoCD,CAAC,EAArC,EAAyC;EACvC,QAAMvB,GAAG,GAAG4B,OAAO,CAACL,CAAD,CAAnB;EACA,QAAMpB,KAAK,GAAGuB,MAAM,CAAC1B,GAAD,CAApB;;EAEA,QAAIG,KAAK,CAAC4B,eAAN,KAA0BnB,OAA1B,IAAqCT,KAAK,CAACwB,kBAAN,KAA6BA,kBAAtE,EAA0F;EACxF,aAAOD,MAAM,CAAC1B,GAAD,CAAb;EACD;EACF;;EAED,SAAO,IAAP;EACD;;EAED,SAASgC,eAAT,CAAyBC,iBAAzB,EAA4CrB,OAA5C,EAAqDsB,YAArD,EAAmE;EACjE,MAAMC,UAAU,GAAG,OAAOvB,OAAP,KAAmB,QAAtC;EACA,MAAMmB,eAAe,GAAGI,UAAU,GAAGD,YAAH,GAAkBtB,OAApD,CAFiE;;EAKjE,MAAIwB,SAAS,GAAGH,iBAAiB,CAACI,OAAlB,CAA0BhD,cAA1B,EAA0C,EAA1C,CAAhB;EACA,MAAMiD,MAAM,GAAG5C,YAAY,CAAC0C,SAAD,CAA3B;;EAEA,MAAIE,MAAJ,EAAY;EACVF,IAAAA,SAAS,GAAGE,MAAZ;EACD;;EAED,MAAMC,QAAQ,GAAG1C,YAAY,CAAC2C,OAAb,CAAqBJ,SAArB,IAAkC,CAAC,CAApD;;EAEA,MAAI,CAACG,QAAL,EAAe;EACbH,IAAAA,SAAS,GAAGH,iBAAZ;EACD;;EAED,SAAO,CAACE,UAAD,EAAaJ,eAAb,EAA8BK,SAA9B,CAAP;EACD;;EAED,SAASK,UAAT,CAAoB1C,OAApB,EAA6BkC,iBAA7B,EAAgDrB,OAAhD,EAAyDsB,YAAzD,EAAuErB,MAAvE,EAA+E;EAC7E,MAAI,OAAOoB,iBAAP,KAA6B,QAA7B,IAAyC,CAAClC,OAA9C,EAAuD;EACrD;EACD;;EAED,MAAI,CAACa,OAAL,EAAc;EACZA,IAAAA,OAAO,GAAGsB,YAAV;EACAA,IAAAA,YAAY,GAAG,IAAf;EACD;;EAR4E,yBAU5BF,eAAe,CAACC,iBAAD,EAAoBrB,OAApB,EAA6BsB,YAA7B,CAVa;EAAA,MAUtEC,UAVsE;EAAA,MAU1DJ,eAV0D;EAAA,MAUzCK,SAVyC;;EAW7E,MAAMV,MAAM,GAAGzB,QAAQ,CAACF,OAAD,CAAvB;EACA,MAAM2C,QAAQ,GAAGhB,MAAM,CAACU,SAAD,CAAN,KAAsBV,MAAM,CAACU,SAAD,CAAN,GAAoB,EAA1C,CAAjB;EACA,MAAMO,UAAU,GAAGlB,WAAW,CAACiB,QAAD,EAAWX,eAAX,EAA4BI,UAAU,GAAGvB,OAAH,GAAa,IAAnD,CAA9B;;EAEA,MAAI+B,UAAJ,EAAgB;EACdA,IAAAA,UAAU,CAAC9B,MAAX,GAAoB8B,UAAU,CAAC9B,MAAX,IAAqBA,MAAzC;EAEA;EACD;;EAED,MAAMb,GAAG,GAAGF,WAAW,CAACiC,eAAD,EAAkBE,iBAAiB,CAACI,OAAlB,CAA0BjD,cAA1B,EAA0C,EAA1C,CAAlB,CAAvB;EACA,MAAMuB,EAAE,GAAGwB,UAAU,GAAGlB,0BAA0B,CAAClB,OAAD,EAAUa,OAAV,EAAmBsB,YAAnB,CAA7B,GAAgExB,gBAAgB,CAACX,OAAD,EAAUa,OAAV,CAArG;EAEAD,EAAAA,EAAE,CAACgB,kBAAH,GAAwBQ,UAAU,GAAGvB,OAAH,GAAa,IAA/C;EACAD,EAAAA,EAAE,CAACoB,eAAH,GAAqBA,eAArB;EACApB,EAAAA,EAAE,CAACE,MAAH,GAAYA,MAAZ;EACAF,EAAAA,EAAE,CAAClB,QAAH,GAAcO,GAAd;EACA0C,EAAAA,QAAQ,CAAC1C,GAAD,CAAR,GAAgBW,EAAhB;EAEAZ,EAAAA,OAAO,CAAC6C,gBAAR,CAAyBR,SAAzB,EAAoCzB,EAApC,EAAwCwB,UAAxC;EACD;;EAED,SAASU,aAAT,CAAuB9C,OAAvB,EAAgC2B,MAAhC,EAAwCU,SAAxC,EAAmDxB,OAAnD,EAA4De,kBAA5D,EAAgF;EAC9E,MAAMhB,EAAE,GAAGc,WAAW,CAACC,MAAM,CAACU,SAAD,CAAP,EAAoBxB,OAApB,EAA6Be,kBAA7B,CAAtB;;EAEA,MAAIhB,EAAE,KAAK,IAAX,EAAiB;EACf;EACD;;EAEDZ,EAAAA,OAAO,CAAC+C,mBAAR,CAA4BV,SAA5B,EAAuCzB,EAAvC,EAA2CoC,OAAO,CAACpB,kBAAD,CAAlD;EACA,SAAOD,MAAM,CAACU,SAAD,CAAN,CAAkBzB,EAAE,CAAClB,QAArB,CAAP;EACD;;EAED,SAASuD,wBAAT,CAAkCjD,OAAlC,EAA2C2B,MAA3C,EAAmDU,SAAnD,EAA8Da,SAA9D,EAAyE;EACvE,MAAMC,iBAAiB,GAAGxB,MAAM,CAACU,SAAD,CAAN,IAAqB,EAA/C;EAEAP,EAAAA,MAAM,CAACC,IAAP,CAAYoB,iBAAZ,EACGC,OADH,CACW,UAAAC,UAAU,EAAI;EACrB,QAAIA,UAAU,CAACZ,OAAX,CAAmBS,SAAnB,IAAgC,CAAC,CAArC,EAAwC;EACtC,UAAM9C,KAAK,GAAG+C,iBAAiB,CAACE,UAAD,CAA/B;EAEAP,MAAAA,aAAa,CAAC9C,OAAD,EAAU2B,MAAV,EAAkBU,SAAlB,EAA6BjC,KAAK,CAAC4B,eAAnC,EAAoD5B,KAAK,CAACwB,kBAA1D,CAAb;EACD;EACF,GAPH;EAQD;;EAED,IAAMb,YAAY,GAAG;EACnBuC,EAAAA,EADmB,cAChBtD,OADgB,EACPI,KADO,EACAS,OADA,EACSsB,YADT,EACuB;EACxCO,IAAAA,UAAU,CAAC1C,OAAD,EAAUI,KAAV,EAAiBS,OAAjB,EAA0BsB,YAA1B,EAAwC,KAAxC,CAAV;EACD,GAHkB;EAKnBoB,EAAAA,GALmB,eAKfvD,OALe,EAKNI,KALM,EAKCS,OALD,EAKUsB,YALV,EAKwB;EACzCO,IAAAA,UAAU,CAAC1C,OAAD,EAAUI,KAAV,EAAiBS,OAAjB,EAA0BsB,YAA1B,EAAwC,IAAxC,CAAV;EACD,GAPkB;EASnBnB,EAAAA,GATmB,eASfhB,OATe,EASNkC,iBATM,EASarB,OATb,EASsBsB,YATtB,EASoC;EACrD,QAAI,OAAOD,iBAAP,KAA6B,QAA7B,IAAyC,CAAClC,OAA9C,EAAuD;EACrD;EACD;;EAHoD,4BAKJiC,eAAe,CAACC,iBAAD,EAAoBrB,OAApB,EAA6BsB,YAA7B,CALX;EAAA,QAK9CC,UAL8C;EAAA,QAKlCJ,eALkC;EAAA,QAKjBK,SALiB;;EAMrD,QAAMmB,WAAW,GAAGnB,SAAS,KAAKH,iBAAlC;EACA,QAAMP,MAAM,GAAGzB,QAAQ,CAACF,OAAD,CAAvB;EACA,QAAMyD,WAAW,GAAGvB,iBAAiB,CAACwB,MAAlB,CAAyB,CAAzB,MAAgC,GAApD;;EAEA,QAAI,OAAO1B,eAAP,KAA2B,WAA/B,EAA4C;EAC1C;EACA,UAAI,CAACL,MAAD,IAAW,CAACA,MAAM,CAACU,SAAD,CAAtB,EAAmC;EACjC;EACD;;EAEDS,MAAAA,aAAa,CAAC9C,OAAD,EAAU2B,MAAV,EAAkBU,SAAlB,EAA6BL,eAA7B,EAA8CI,UAAU,GAAGvB,OAAH,GAAa,IAArE,CAAb;EACA;EACD;;EAED,QAAI4C,WAAJ,EAAiB;EACf3B,MAAAA,MAAM,CAACC,IAAP,CAAYJ,MAAZ,EACGyB,OADH,CACW,UAAAO,YAAY,EAAI;EACvBV,QAAAA,wBAAwB,CAACjD,OAAD,EAAU2B,MAAV,EAAkBgC,YAAlB,EAAgCzB,iBAAiB,CAAC0B,MAAlB,CAAyB,CAAzB,CAAhC,CAAxB;EACD,OAHH;EAID;;EAED,QAAMT,iBAAiB,GAAGxB,MAAM,CAACU,SAAD,CAAN,IAAqB,EAA/C;EACAP,IAAAA,MAAM,CAACC,IAAP,CAAYoB,iBAAZ,EACGC,OADH,CACW,UAAAS,WAAW,EAAI;EACtB,UAAMR,UAAU,GAAGQ,WAAW,CAACvB,OAAZ,CAAoB9C,aAApB,EAAmC,EAAnC,CAAnB;;EAEA,UAAI,CAACgE,WAAD,IAAgBtB,iBAAiB,CAACO,OAAlB,CAA0BY,UAA1B,IAAwC,CAAC,CAA7D,EAAgE;EAC9D,YAAMjD,KAAK,GAAG+C,iBAAiB,CAACU,WAAD,CAA/B;EAEAf,QAAAA,aAAa,CAAC9C,OAAD,EAAU2B,MAAV,EAAkBU,SAAlB,EAA6BjC,KAAK,CAAC4B,eAAnC,EAAoD5B,KAAK,CAACwB,kBAA1D,CAAb;EACD;EACF,KATH;EAUD,GA/CkB;EAiDnBkC,EAAAA,OAjDmB,mBAiDX9D,OAjDW,EAiDFI,KAjDE,EAiDK2D,IAjDL,EAiDW;EAC5B,QAAI,OAAO3D,KAAP,KAAiB,QAAjB,IAA6B,CAACJ,OAAlC,EAA2C;EACzC,aAAO,IAAP;EACD;;EAED,QAAMqC,SAAS,GAAGjC,KAAK,CAACkC,OAAN,CAAchD,cAAd,EAA8B,EAA9B,CAAlB;EACA,QAAMkE,WAAW,GAAGpD,KAAK,KAAKiC,SAA9B;EACA,QAAMG,QAAQ,GAAG1C,YAAY,CAAC2C,OAAb,CAAqBJ,SAArB,IAAkC,CAAC,CAApD;EAEA,QAAI2B,WAAJ;EACA,QAAIC,OAAO,GAAG,IAAd;EACA,QAAIC,cAAc,GAAG,IAArB;EACA,QAAIC,gBAAgB,GAAG,KAAvB;EACA,QAAIC,GAAG,GAAG,IAAV;;EAEA,QAAIZ,WAAW,IAAI,OAAOa,MAAP,KAAa,WAAhC,EAA6C;EAC3CL,MAAAA,WAAW,GAAGK,MAAC,CAACC,KAAF,CAAQlE,KAAR,EAAe2D,IAAf,CAAd;EAEAM,MAAAA,MAAC,CAACrE,OAAD,CAAD,CAAW8D,OAAX,CAAmBE,WAAnB;EACAC,MAAAA,OAAO,GAAG,CAACD,WAAW,CAACO,oBAAZ,EAAX;EACAL,MAAAA,cAAc,GAAG,CAACF,WAAW,CAACQ,6BAAZ,EAAlB;EACAL,MAAAA,gBAAgB,GAAGH,WAAW,CAACS,kBAAZ,EAAnB;EACD;;EAED,QAAIjC,QAAJ,EAAc;EACZ4B,MAAAA,GAAG,GAAGM,QAAQ,CAACC,WAAT,CAAqB,YAArB,CAAN;EACAP,MAAAA,GAAG,CAACQ,SAAJ,CAAcvC,SAAd,EAAyB4B,OAAzB,EAAkC,IAAlC;EACD,KAHD,MAGO;EACLG,MAAAA,GAAG,GAAG,IAAIS,WAAJ,CAAgBzE,KAAhB,EAAuB;EAC3B6D,QAAAA,OAAO,EAAPA,OAD2B;EAE3Ba,QAAAA,UAAU,EAAE;EAFe,OAAvB,CAAN;EAID,KAhC2B;;;EAmC5B,QAAI,OAAOf,IAAP,KAAgB,WAApB,EAAiC;EAC/BjC,MAAAA,MAAM,CAACC,IAAP,CAAYgC,IAAZ,EACGX,OADH,CACW,UAAA2B,GAAG,EAAI;EACdjD,QAAAA,MAAM,CAACkD,cAAP,CAAsBZ,GAAtB,EAA2BW,GAA3B,EAAgC;EAC9BE,UAAAA,GAD8B,iBACxB;EACJ,mBAAOlB,IAAI,CAACgB,GAAD,CAAX;EACD;EAH6B,SAAhC;EAKD,OAPH;EAQD;;EAED,QAAIZ,gBAAJ,EAAsB;EACpBC,MAAAA,GAAG,CAACc,cAAJ;;EAEA,UAAI,CAACC,QAAQ,CAACC,mCAAd,EAAmD;EACjDtD,QAAAA,MAAM,CAACkD,cAAP,CAAsBZ,GAAtB,EAA2B,kBAA3B,EAA+C;EAC7Ca,UAAAA,GAAG,EAAE;EAAA,mBAAM,IAAN;EAAA;EADwC,SAA/C;EAGD;EACF;;EAED,QAAIf,cAAJ,EAAoB;EAClBlE,MAAAA,OAAO,CAACqF,aAAR,CAAsBjB,GAAtB;EACD;;EAED,QAAIA,GAAG,CAACD,gBAAJ,IAAwB,OAAOH,WAAP,KAAuB,WAAnD,EAAgE;EAC9DA,MAAAA,WAAW,CAACkB,cAAZ;EACD;;EAED,WAAOd,GAAP;EACD;EAlHkB,CAArB;;;;;;;;"}
\ No newline at end of file +{"version":3,"file":"eventhandler.js","sources":["../../src/util/index.js","../../src/dom/polyfill.js","../../src/dom/eventHandler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n for (const uid of Object.keys(events)) {\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n"],"names":["MAX_UID","window","jQuery","getUID","prefix","Math","random","document","getElementById","Element","prototype","matches","closest","find","querySelectorAll","findOne","querySelector","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","workingDefaultPrevented","e","initEvent","preventDefault","defaultPrevented","origPreventDefault","Event","call","Object","defineProperty","get","configurable","defaultPreventedPreservedOnDispatch","element","createElement","addEventListener","dispatchEvent","msMatchesSelector","webkitMatchesSelector","selector","parentElement","parentNode","nodeType","scopeSelectorRegex","supportScopeQuery","error","test","hasId","Boolean","id","nodeList","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","keys","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeEventListener","removeNamespacedHandlers","namespace","storeElementEvent","forEach","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","key"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/dom/polyfill.js.map b/js/dist/dom/polyfill.js.map index 029fe85a32..8aea4ef1ca 100644 --- a/js/dist/dom/polyfill.js.map +++ b/js/dist/dom/polyfill.js.map @@ -1 +1 @@ -{"version":3,"file":"polyfill.js","sources":["../../src/util/index.js","../../src/dom/polyfill.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n })()\n\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n }\n\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n"],"names":["MAX_UID","window","jQuery","getUID","prefix","Math","random","document","getElementById","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","element","createElement","addEventListener","preventDefault","dispatchEvent","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","querySelector","scopeSelectorRegex","supportScopeQuery","error","selector","test","hasId","Boolean","id","nodeList","replace","removeAttribute","matches","call"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"polyfill.js","sources":["../../src/util/index.js","../../src/dom/polyfill.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n })()\n\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n }\n\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n"],"names":["MAX_UID","window","jQuery","getUID","prefix","Math","random","document","getElementById","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","element","createElement","addEventListener","preventDefault","dispatchEvent","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","querySelector","scopeSelectorRegex","supportScopeQuery","error","selector","test","hasId","Boolean","id","nodeList","replace","removeAttribute","matches","call"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/dom/selectorengine.js b/js/dist/dom/selectorengine.js index 533d90e90b..2bd8089bfc 100644 --- a/js/dist/dom/selectorengine.js +++ b/js/dist/dom/selectorengine.js @@ -4,12 +4,10 @@ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./polyfill.js')) : - typeof define === 'function' && define.amd ? define(['./polyfill.js'], factory) : - (global = global || self, global.SelectorEngine = factory(global.Polyfill)); -}(this, function (Polyfill) { 'use strict'; - - Polyfill = Polyfill && Polyfill.hasOwnProperty('default') ? Polyfill['default'] : Polyfill; + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.SelectorEngine = factory()); +}(this, function () { 'use strict'; /** * -------------------------------------------------------------------------- @@ -17,8 +15,24 @@ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ + var MAX_UID = 1000000; var _window = window, jQuery = _window.jQuery; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + /** + * -------------------------------------------------------------------------- + * Public Util Api + * -------------------------------------------------------------------------- + */ + + + var getUID = function getUID(prefix) { + do { + // eslint-disable-next-line no-bitwise + prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here + } while (document.getElementById(prefix)); + + return prefix; + }; var makeArray = function makeArray(nodeList) { if (!nodeList) { @@ -28,6 +42,145 @@ return [].slice.call(nodeList); }; + /* istanbul ignore file */ + var _Element$prototype = Element.prototype, + matches = _Element$prototype.matches, + closest = _Element$prototype.closest; + var find = Element.prototype.querySelectorAll; + var findOne = Element.prototype.querySelector; + + var createCustomEvent = function createCustomEvent(eventName, params) { + var cEvent = new CustomEvent(eventName, params); + return cEvent; + }; + + if (typeof window.CustomEvent !== 'function') { + createCustomEvent = function createCustomEvent(eventName, params) { + params = params || { + bubbles: false, + cancelable: false, + detail: null + }; + var evt = document.createEvent('CustomEvent'); + evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail); + return evt; + }; + } + + var workingDefaultPrevented = function () { + var e = document.createEvent('CustomEvent'); + e.initEvent('Bootstrap', true, true); + e.preventDefault(); + return e.defaultPrevented; + }(); + + if (!workingDefaultPrevented) { + var origPreventDefault = Event.prototype.preventDefault; + + Event.prototype.preventDefault = function () { + if (!this.cancelable) { + return; + } + + origPreventDefault.call(this); + Object.defineProperty(this, 'defaultPrevented', { + get: function get() { + return true; + }, + configurable: true + }); + }; + } // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached + + + var defaultPreventedPreservedOnDispatch = function () { + var e = createCustomEvent('Bootstrap', { + cancelable: true + }); + var element = document.createElement('div'); + element.addEventListener('Bootstrap', function () { + return null; + }); + e.preventDefault(); + element.dispatchEvent(e); + return e.defaultPrevented; + }(); + + if (!matches) { + matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; + } + + if (!closest) { + closest = function closest(selector) { + var element = this; + + do { + if (matches.call(element, selector)) { + return element; + } + + element = element.parentElement || element.parentNode; + } while (element !== null && element.nodeType === 1); + + return null; + }; + } + + var scopeSelectorRegex = /:scope\b/; + + var supportScopeQuery = function () { + var element = document.createElement('div'); + + try { + element.querySelectorAll(':scope *'); + } catch (error) { + return false; + } + + return true; + }(); + + if (!supportScopeQuery) { + find = function find(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelectorAll(selector); + } + + var hasId = Boolean(this.id); + + if (!hasId) { + this.id = getUID('scope'); + } + + var nodeList = null; + + try { + selector = selector.replace(scopeSelectorRegex, "#" + this.id); + nodeList = this.querySelectorAll(selector); + } finally { + if (!hasId) { + this.removeAttribute('id'); + } + } + + return nodeList; + }; + + findOne = function findOne(selector) { + if (!scopeSelectorRegex.test(selector)) { + return this.querySelector(selector); + } + + var matches = find.call(this, selector); + + if (typeof matches[0] !== 'undefined') { + return matches[0]; + } + + return null; + }; + } + /** * -------------------------------------------------------------------------- * Bootstrap (v4.3.1): dom/selectorEngine.js @@ -40,14 +193,12 @@ * ------------------------------------------------------------------------ */ - var findFn = Polyfill.find, - _findOne = Polyfill.findOne; var NODE_TEXT = 3; var SelectorEngine = { - matches: function matches(element, selector) { - return element.matches(selector); + matches: function matches$1(element, selector) { + return matches.call(element, selector); }, - find: function find(selector, element) { + find: function find$1(selector, element) { if (element === void 0) { element = document.documentElement; } @@ -56,9 +207,9 @@ return null; } - return findFn.call(element, selector); + return find.call(element, selector); }, - findOne: function findOne(selector, element) { + findOne: function findOne$1(selector, element) { if (element === void 0) { element = document.documentElement; } @@ -67,7 +218,7 @@ return null; } - return _findOne.call(element, selector); + return findOne.call(element, selector); }, children: function children(element, selector) { var _this = this; @@ -99,12 +250,12 @@ return parents; }, - closest: function closest(element, selector) { + closest: function closest$1(element, selector) { if (typeof selector !== 'string') { return null; } - return element.closest(selector); + return closest.call(element, selector); }, prev: function prev(element, selector) { if (typeof selector !== 'string') { diff --git a/js/dist/dom/selectorengine.js.map b/js/dist/dom/selectorengine.js.map index 5d7dce7941..314d298360 100644 --- a/js/dist/dom/selectorengine.js.map +++ b/js/dist/dom/selectorengine.js.map @@ -1 +1 @@ -{"version":3,"file":"selectorengine.js","sources":["../../src/util/index.js","../../src/dom/selectorEngine.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n"],"names":["window","jQuery","makeArray","nodeList","slice","call","findFn","Polyfill","find","findOne","NODE_TEXT","SelectorEngine","matches","element","selector","document","documentElement","children","filter","child","parents","ancestor","parentNode","nodeType","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"selectorengine.js","sources":["../../src/util/index.js","../../src/dom/polyfill.js","../../src/dom/selectorEngine.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n"],"names":["MAX_UID","window","jQuery","getUID","prefix","Math","random","document","getElementById","makeArray","nodeList","slice","call","Element","prototype","matches","closest","find","querySelectorAll","findOne","querySelector","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","workingDefaultPrevented","e","initEvent","preventDefault","defaultPrevented","origPreventDefault","Event","Object","defineProperty","get","configurable","defaultPreventedPreservedOnDispatch","element","createElement","addEventListener","dispatchEvent","msMatchesSelector","webkitMatchesSelector","selector","parentElement","parentNode","nodeType","scopeSelectorRegex","supportScopeQuery","error","test","hasId","Boolean","id","replace","removeAttribute","NODE_TEXT","SelectorEngine","documentElement","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/dropdown.js.map b/js/dist/dropdown.js.map index 56a5983675..447efe6820 100644 --- a/js/dist/dropdown.js.map +++ b/js/dist/dropdown.js.map @@ -1 +1 @@ -{"version":3,"file":"dropdown.js","sources":["../src/util/index.js","../src/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n"],"names":["window","jQuery","toType","obj","toString","call","match","toLowerCase","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","noop","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","KEYDOWN_DATA_API","KEYUP_DATA_API","ClassName","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","Selector","DATA_TOGGLE","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHT","RIGHTEND","LEFT","LEFTEND","Default","offset","flip","boundary","reference","display","DefaultType","Dropdown","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","Data","setData","toggle","disabled","classList","contains","parent","_getParentFromElement","isActive","_clearMenus","relatedTarget","showEvent","EventHandler","trigger","defaultPrevented","Popper","TypeError","referenceElement","jquery","add","_getPopperConfig","documentElement","SelectorEngine","closest","length","body","children","elem","on","focus","setAttribute","Manipulator","toggleClass","show","hide","hideEvent","dispose","removeData","off","destroy","update","scheduleUpdate","event","preventDefault","stopPropagation","constructor","getDataAttributes","findOne","_getPlacement","parentDropdown","parentNode","placement","Boolean","_getOffset","fn","data","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","getData","_jQueryInterface","each","which","type","toggles","find","i","len","context","clickEvent","dropdownMenu","target","tagName","remove","_dataApiKeydownHandler","items","index","indexOf","_getInstance","e","$","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"dropdown.js","sources":["../src/util/index.js","../src/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n"],"names":["window","jQuery","toType","obj","toString","call","match","toLowerCase","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","noop","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","KEYDOWN_DATA_API","KEYUP_DATA_API","ClassName","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","Selector","DATA_TOGGLE","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHT","RIGHTEND","LEFT","LEFTEND","Default","offset","flip","boundary","reference","display","DefaultType","Dropdown","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","Data","setData","toggle","disabled","classList","contains","parent","_getParentFromElement","isActive","_clearMenus","relatedTarget","showEvent","EventHandler","trigger","defaultPrevented","Popper","TypeError","referenceElement","jquery","add","_getPopperConfig","documentElement","SelectorEngine","closest","length","body","children","elem","on","focus","setAttribute","Manipulator","toggleClass","show","hide","hideEvent","dispose","removeData","off","destroy","update","scheduleUpdate","event","preventDefault","stopPropagation","constructor","getDataAttributes","findOne","_getPlacement","parentDropdown","parentNode","placement","Boolean","_getOffset","fn","data","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","getData","_jQueryInterface","each","which","type","toggles","find","i","len","context","clickEvent","dropdownMenu","target","tagName","remove","_dataApiKeydownHandler","items","index","indexOf","_getInstance","e","$","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/modal.js b/js/dist/modal.js index 3c69a3e566..181d15e819 100644 --- a/js/dist/modal.js +++ b/js/dist/modal.js @@ -118,7 +118,9 @@ }; var triggerTransitionEnd = function triggerTransitionEnd(element) { - element.dispatchEvent(new Event(TRANSITION_END)); + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(TRANSITION_END, true, true); + element.dispatchEvent(evt); }; var isElement = function isElement(obj) { @@ -204,7 +206,7 @@ focus: 'boolean', show: 'boolean' }; - var Event$1 = { + var Event = { HIDE: "hide" + EVENT_KEY, HIDDEN: "hidden" + EVENT_KEY, SHOW: "show" + EVENT_KEY, @@ -275,7 +277,7 @@ this._isTransitioning = true; } - var showEvent = EventHandler.trigger(this._element, Event$1.SHOW, { + var showEvent = EventHandler.trigger(this._element, Event.SHOW, { relatedTarget: relatedTarget }); @@ -295,11 +297,11 @@ this._setResizeEvent(); - EventHandler.on(this._element, Event$1.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) { + EventHandler.on(this._element, Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) { return _this.hide(event); }); - EventHandler.on(this._dialog, Event$1.MOUSEDOWN_DISMISS, function () { - EventHandler.one(_this._element, Event$1.MOUSEUP_DISMISS, function (event) { + EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, function () { + EventHandler.one(_this._element, Event.MOUSEUP_DISMISS, function (event) { if (event.target === _this._element) { _this._ignoreBackdropClick = true; } @@ -322,7 +324,7 @@ return; } - var hideEvent = EventHandler.trigger(this._element, Event$1.HIDE); + var hideEvent = EventHandler.trigger(this._element, Event.HIDE); if (!this._isShown || hideEvent.defaultPrevented) { return; @@ -340,12 +342,12 @@ this._setResizeEvent(); - EventHandler.off(document, Event$1.FOCUSIN); + EventHandler.off(document, Event.FOCUSIN); this._element.classList.remove(ClassName.SHOW); - EventHandler.off(this._element, Event$1.CLICK_DISMISS); - EventHandler.off(this._dialog, Event$1.MOUSEDOWN_DISMISS); + EventHandler.off(this._element, Event.CLICK_DISMISS); + EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS); if (transition) { var transitionDuration = getTransitionDurationFromElement(this._element); @@ -368,7 +370,7 @@ * It will remove `Event.CLICK_DATA_API` event that should remain */ - EventHandler.off(document, Event$1.FOCUSIN); + EventHandler.off(document, Event.FOCUSIN); Data.removeData(this._element, DATA_KEY); this._config = null; this._element = null; @@ -430,7 +432,7 @@ } _this3._isTransitioning = false; - EventHandler.trigger(_this3._element, Event$1.SHOWN, { + EventHandler.trigger(_this3._element, Event.SHOWN, { relatedTarget: relatedTarget }); }; @@ -447,9 +449,9 @@ _proto._enforceFocus = function _enforceFocus() { var _this4 = this; - EventHandler.off(document, Event$1.FOCUSIN); // guard against infinite focus loop + EventHandler.off(document, Event.FOCUSIN); // guard against infinite focus loop - EventHandler.on(document, Event$1.FOCUSIN, function (event) { + EventHandler.on(document, Event.FOCUSIN, function (event) { if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) { _this4._element.focus(); } @@ -460,7 +462,7 @@ var _this5 = this; if (this._isShown && this._config.keyboard) { - EventHandler.on(this._element, Event$1.KEYDOWN_DISMISS, function (event) { + EventHandler.on(this._element, Event.KEYDOWN_DISMISS, function (event) { if (event.which === ESCAPE_KEYCODE) { event.preventDefault(); @@ -468,7 +470,7 @@ } }); } else if (!this._isShown) { - EventHandler.off(this._element, Event$1.KEYDOWN_DISMISS); + EventHandler.off(this._element, Event.KEYDOWN_DISMISS); } }; @@ -476,11 +478,11 @@ var _this6 = this; if (this._isShown) { - EventHandler.on(window, Event$1.RESIZE, function (event) { + EventHandler.on(window, Event.RESIZE, function (event) { return _this6.handleUpdate(event); }); } else { - EventHandler.off(window, Event$1.RESIZE); + EventHandler.off(window, Event.RESIZE); } }; @@ -502,7 +504,7 @@ _this7._resetScrollbar(); - EventHandler.trigger(_this7._element, Event$1.HIDDEN); + EventHandler.trigger(_this7._element, Event.HIDDEN); }); }; @@ -528,7 +530,7 @@ } document.body.appendChild(this._backdrop); - EventHandler.on(this._element, Event$1.CLICK_DISMISS, function (event) { + EventHandler.on(this._element, Event.CLICK_DISMISS, function (event) { if (_this8._ignoreBackdropClick) { _this8._ignoreBackdropClick = false; return; @@ -731,7 +733,7 @@ */ - EventHandler.on(document, Event$1.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + EventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { var _this10 = this; var target; @@ -747,13 +749,13 @@ event.preventDefault(); } - EventHandler.one(target, Event$1.SHOW, function (showEvent) { + EventHandler.one(target, Event.SHOW, function (showEvent) { if (showEvent.defaultPrevented) { // only register focus restorer if modal will actually get shown return; } - EventHandler.one(target, Event$1.HIDDEN, function () { + EventHandler.one(target, Event.HIDDEN, function () { if (isVisible(_this10)) { _this10.focus(); } diff --git a/js/dist/modal.js.map b/js/dist/modal.js.map index 8c182021b3..763ff815e9 100644 --- a/js/dist/modal.js.map +++ b/js/dist/modal.js.map @@ -1 +1 @@ -{"version":3,"file":"modal.js","sources":["../src/util/index.js","../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","reflow","offsetHeight","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEYCODE","Default","backdrop","keyboard","focus","show","DefaultType","HIDE","HIDDEN","SHOW","SHOWN","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","CLICK_DATA_API","ClassName","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","Selector","DIALOG","MODAL_BODY","DATA_TOGGLE","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_config","_getConfig","_element","_dialog","SelectorEngine","findOne","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","Data","setData","toggle","relatedTarget","hide","classList","contains","showEvent","EventHandler","trigger","defaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","one","target","_showBackdrop","_showElement","preventDefault","hideEvent","transition","off","remove","_hideModal","dispose","htmlElement","removeData","handleUpdate","Node","ELEMENT_NODE","body","appendChild","removeAttribute","setAttribute","scrollTop","add","_enforceFocus","transitionComplete","which","_resetAdjustments","_resetScrollbar","_removeBackdrop","removeChild","callback","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","rect","getBoundingClientRect","left","right","innerWidth","_getScrollbarWidth","find","actualPadding","calculatedPadding","Manipulator","setDataAttribute","actualMargin","marginRight","calculatedMargin","padding","getDataAttribute","removeDataAttribute","margin","scrollDiv","scrollbarWidth","width","clientWidth","_jQueryInterface","each","data","getData","getDataAttributes","TypeError","_getInstance","tagName","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"modal.js","sources":["../src/util/index.js","../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","reflow","offsetHeight","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEYCODE","Default","backdrop","keyboard","focus","show","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","CLICK_DATA_API","ClassName","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","Selector","DIALOG","MODAL_BODY","DATA_TOGGLE","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_config","_getConfig","_element","_dialog","SelectorEngine","findOne","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","Data","setData","toggle","relatedTarget","hide","classList","contains","showEvent","EventHandler","trigger","defaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","one","target","_showBackdrop","_showElement","preventDefault","hideEvent","transition","off","remove","_hideModal","dispose","htmlElement","removeData","handleUpdate","Node","ELEMENT_NODE","body","appendChild","removeAttribute","setAttribute","scrollTop","add","_enforceFocus","transitionComplete","which","_resetAdjustments","_resetScrollbar","_removeBackdrop","removeChild","callback","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","rect","getBoundingClientRect","left","right","innerWidth","_getScrollbarWidth","find","actualPadding","calculatedPadding","Manipulator","setDataAttribute","actualMargin","marginRight","calculatedMargin","padding","getDataAttribute","removeDataAttribute","margin","scrollDiv","scrollbarWidth","width","clientWidth","_jQueryInterface","each","data","getData","getDataAttributes","TypeError","_getInstance","tagName","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/popover.js.map b/js/dist/popover.js.map index aa93086e7d..5ae34cdffd 100644 --- a/js/dist/popover.js.map +++ b/js/dist/popover.js.map @@ -1 +1 @@ -{"version":3,"file":"popover.js","sources":["../src/util/index.js","../src/popover.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n"],"names":["window","jQuery","NAME","VERSION","DATA_KEY","EVENT_KEY","CLASS_PREFIX","BSCLS_PREFIX_REGEX","RegExp","Default","Tooltip","placement","trigger","content","template","DefaultType","ClassName","FADE","SHOW","Selector","TITLE","CONTENT","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Popover","isWithContent","getTitle","_getContent","addAttachmentClass","attachment","getTipElement","classList","add","setContent","tip","setElementContent","SelectorEngine","findOne","call","element","remove","getAttribute","config","_cleanTipClass","tabClass","match","length","map","token","trim","forEach","tClass","_jQueryInterface","each","data","Data","getData","_config","test","setData","TypeError","_getInstance","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;;;;;;AAOA,gBAGmBA;MAAXC,iBAAAA;;ECIR;;;;;;EAMA,IAAMC,IAAI,GAAG,SAAb;EACA,IAAMC,OAAO,GAAG,OAAhB;EACA,IAAMC,QAAQ,GAAG,YAAjB;EACA,IAAMC,SAAS,SAAOD,QAAtB;EACA,IAAME,YAAY,GAAG,YAArB;EACA,IAAMC,kBAAkB,GAAG,IAAIC,MAAJ,aAAqBF,YAArB,WAAyC,GAAzC,CAA3B;;EAEA,IAAMG,OAAO,qBACRC,OAAO,CAACD,OADA;EAEXE,EAAAA,SAAS,EAAE,OAFA;EAGXC,EAAAA,OAAO,EAAE,OAHE;EAIXC,EAAAA,OAAO,EAAE,EAJE;EAKXC,EAAAA,QAAQ,EAAE,yCACE,mCADF,GAEE,kCAFF,GAGE;EARD,EAAb;;EAWA,IAAMC,WAAW,qBACZL,OAAO,CAACK,WADI;EAEfF,EAAAA,OAAO,EAAE;EAFM,EAAjB;;EAKA,IAAMG,SAAS,GAAG;EAChBC,EAAAA,IAAI,EAAE,MADU;EAEhBC,EAAAA,IAAI,EAAE;EAFU,CAAlB;EAKA,IAAMC,QAAQ,GAAG;EACfC,EAAAA,KAAK,EAAE,iBADQ;EAEfC,EAAAA,OAAO,EAAE;EAFM,CAAjB;EAKA,IAAMC,KAAK,GAAG;EACZC,EAAAA,IAAI,WAASlB,SADD;EAEZmB,EAAAA,MAAM,aAAWnB,SAFL;EAGZa,EAAAA,IAAI,WAASb,SAHD;EAIZoB,EAAAA,KAAK,YAAUpB,SAJH;EAKZqB,EAAAA,QAAQ,eAAarB,SALT;EAMZsB,EAAAA,KAAK,YAAUtB,SANH;EAOZuB,EAAAA,OAAO,cAAYvB,SAPP;EAQZwB,EAAAA,QAAQ,eAAaxB,SART;EASZyB,EAAAA,UAAU,iBAAezB,SATb;EAUZ0B,EAAAA,UAAU,iBAAe1B;EAG3B;;;;;;EAbc,CAAd;;MAmBM2B;;;;;;;;;;;EA+BJ;WAEAC,gBAAA,yBAAgB;EACd,WAAO,KAAKC,QAAL,MAAmB,KAAKC,WAAL,EAA1B;EACD;;WAEDC,qBAAA,4BAAmBC,UAAnB,EAA+B;EAC7B,SAAKC,aAAL,GAAqBC,SAArB,CAA+BC,GAA/B,CAAsClC,YAAtC,SAAsD+B,UAAtD;EACD;;WAEDI,aAAA,sBAAa;EACX,QAAMC,GAAG,GAAG,KAAKJ,aAAL,EAAZ,CADW;;EAIX,SAAKK,iBAAL,CAAuBC,cAAc,CAACC,OAAf,CAAuB1B,QAAQ,CAACC,KAAhC,EAAuCsB,GAAvC,CAAvB,EAAoE,KAAKR,QAAL,EAApE;;EACA,QAAIrB,OAAO,GAAG,KAAKsB,WAAL,EAAd;;EACA,QAAI,OAAOtB,OAAP,KAAmB,UAAvB,EAAmC;EACjCA,MAAAA,OAAO,GAAGA,OAAO,CAACiC,IAAR,CAAa,KAAKC,OAAlB,CAAV;EACD;;EAED,SAAKJ,iBAAL,CAAuBC,cAAc,CAACC,OAAf,CAAuB1B,QAAQ,CAACE,OAAhC,EAAyCqB,GAAzC,CAAvB,EAAsE7B,OAAtE;EAEA6B,IAAAA,GAAG,CAACH,SAAJ,CAAcS,MAAd,CAAqBhC,SAAS,CAACC,IAA/B;EACAyB,IAAAA,GAAG,CAACH,SAAJ,CAAcS,MAAd,CAAqBhC,SAAS,CAACE,IAA/B;EACD;;;WAIDiB,cAAA,uBAAc;EACZ,WAAO,KAAKY,OAAL,CAAaE,YAAb,CAA0B,cAA1B,KACL,KAAKC,MAAL,CAAYrC,OADd;EAED;;WAEDsC,iBAAA,0BAAiB;EACf,QAAMT,GAAG,GAAG,KAAKJ,aAAL,EAAZ;EACA,QAAMc,QAAQ,GAAGV,GAAG,CAACO,YAAJ,CAAiB,OAAjB,EAA0BI,KAA1B,CAAgC9C,kBAAhC,CAAjB;;EAEA,QAAI6C,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,CAACE,MAAT,GAAkB,CAA3C,EAA8C;EAC5CF,MAAAA,QAAQ,CAACG,GAAT,CAAa,UAAAC,KAAK;EAAA,eAAIA,KAAK,CAACC,IAAN,EAAJ;EAAA,OAAlB,EACGC,OADH,CACW,UAAAC,MAAM;EAAA,eAAIjB,GAAG,CAACH,SAAJ,CAAcS,MAAd,CAAqBW,MAArB,CAAJ;EAAA,OADjB;EAED;EACF;;;YAIMC,mBAAP,0BAAwBV,MAAxB,EAAgC;EAC9B,WAAO,KAAKW,IAAL,CAAU,YAAY;EAC3B,UAAIC,IAAI,GAAGC,IAAI,CAACC,OAAL,CAAa,IAAb,EAAmB5D,QAAnB,CAAX;;EACA,UAAM6D,OAAO,GAAG,OAAOf,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;EAEA,UAAI,CAACY,IAAD,IAAS,eAAeI,IAAf,CAAoBhB,MAApB,CAAb,EAA0C;EACxC;EACD;;EAED,UAAI,CAACY,IAAL,EAAW;EACTA,QAAAA,IAAI,GAAG,IAAI9B,OAAJ,CAAY,IAAZ,EAAkBiC,OAAlB,CAAP;EACAF,QAAAA,IAAI,CAACI,OAAL,CAAa,IAAb,EAAmB/D,QAAnB,EAA6B0D,IAA7B;EACD;;EAED,UAAI,OAAOZ,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAOY,IAAI,CAACZ,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAIkB,SAAJ,wBAAkClB,MAAlC,QAAN;EACD;;EAEDY,QAAAA,IAAI,CAACZ,MAAD,CAAJ;EACD;EACF,KApBM,CAAP;EAqBD;;YAEMmB,eAAP,sBAAoBtB,OAApB,EAA6B;EAC3B,WAAOgB,IAAI,CAACC,OAAL,CAAajB,OAAb,EAAsB3C,QAAtB,CAAP;EACD;;;;EArGD;0BAEqB;EACnB,aAAOD,OAAP;EACD;;;0BAEoB;EACnB,aAAOM,OAAP;EACD;;;0BAEiB;EAChB,aAAOP,IAAP;EACD;;;0BAEqB;EACpB,aAAOE,QAAP;EACD;;;0BAEkB;EACjB,aAAOkB,KAAP;EACD;;;0BAEsB;EACrB,aAAOjB,SAAP;EACD;;;0BAEwB;EACvB,aAAOU,WAAP;EACD;;;;IA7BmBL;EAyGtB;;;;;;;EAMA,IAAI,OAAO4D,MAAP,KAAa,WAAjB,EAA8B;EAC5B,MAAMC,kBAAkB,GAAGD,MAAC,CAACE,EAAF,CAAKtE,IAAL,CAA3B;EACAoE,EAAAA,MAAC,CAACE,EAAF,CAAKtE,IAAL,IAAa8B,OAAO,CAAC4B,gBAArB;EACAU,EAAAA,MAAC,CAACE,EAAF,CAAKtE,IAAL,EAAWuE,WAAX,GAAyBzC,OAAzB;;EACAsC,EAAAA,MAAC,CAACE,EAAF,CAAKtE,IAAL,EAAWwE,UAAX,GAAwB,YAAM;EAC5BJ,IAAAA,MAAC,CAACE,EAAF,CAAKtE,IAAL,IAAaqE,kBAAb;EACA,WAAOvC,OAAO,CAAC4B,gBAAf;EACD,GAHD;EAID;;;;;;;;"}
\ No newline at end of file +{"version":3,"file":"popover.js","sources":["../src/util/index.js","../src/popover.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n"],"names":["window","jQuery","NAME","VERSION","DATA_KEY","EVENT_KEY","CLASS_PREFIX","BSCLS_PREFIX_REGEX","RegExp","Default","Tooltip","placement","trigger","content","template","DefaultType","ClassName","FADE","SHOW","Selector","TITLE","CONTENT","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Popover","isWithContent","getTitle","_getContent","addAttachmentClass","attachment","getTipElement","classList","add","setContent","tip","setElementContent","SelectorEngine","findOne","call","element","remove","getAttribute","config","_cleanTipClass","tabClass","match","length","map","token","trim","forEach","tClass","_jQueryInterface","each","data","Data","getData","_config","test","setData","TypeError","_getInstance","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/scrollspy.js.map b/js/dist/scrollspy.js.map index 7af923d1b6..1d3960d5e8 100644 --- a/js/dist/scrollspy.js.map +++ b/js/dist/scrollspy.js.map @@ -1 +1 @@ -{"version":3,"file":"scrollspy.js","sources":["../src/util/index.js","../src/scrollspy.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n"],"names":["MAX_UID","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","offset","method","target","DefaultType","Event","ACTIVATE","SCROLL","LOAD_DATA_API","ClassName","DROPDOWN_ITEM","ACTIVE","Selector","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_element","_scrollElement","tagName","_config","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","EventHandler","on","event","_process","refresh","Data","setData","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","SelectorEngine","find","map","targetSelector","findOne","targetBCR","getBoundingClientRect","width","height","Manipulator","top","filter","item","sort","a","b","push","dispose","removeData","off","id","pageYOffset","scrollTop","scrollHeight","max","body","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","offsetLength","i","isActiveTarget","queries","split","link","join","classList","contains","closest","add","parents","listGroup","prev","navItem","children","trigger","relatedTarget","node","remove","_jQueryInterface","each","data","getData","TypeError","_getInstance","spy","getDataAttributes","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"scrollspy.js","sources":["../src/util/index.js","../src/scrollspy.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n"],"names":["MAX_UID","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","offset","method","target","DefaultType","Event","ACTIVATE","SCROLL","LOAD_DATA_API","ClassName","DROPDOWN_ITEM","ACTIVE","Selector","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_element","_scrollElement","tagName","_config","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","EventHandler","on","event","_process","refresh","Data","setData","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","SelectorEngine","find","map","targetSelector","findOne","targetBCR","getBoundingClientRect","width","height","Manipulator","top","filter","item","sort","a","b","push","dispose","removeData","off","id","pageYOffset","scrollTop","scrollHeight","max","body","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","offsetLength","i","isActiveTarget","queries","split","link","join","classList","contains","closest","add","parents","listGroup","prev","navItem","children","trigger","relatedTarget","node","remove","_jQueryInterface","each","data","getData","TypeError","_getInstance","spy","getDataAttributes","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/tab.js b/js/dist/tab.js index dfe4071d15..d9e7f2ea0e 100644 --- a/js/dist/tab.js +++ b/js/dist/tab.js @@ -79,7 +79,9 @@ }; var triggerTransitionEnd = function triggerTransitionEnd(element) { - element.dispatchEvent(new Event(TRANSITION_END)); + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(TRANSITION_END, true, true); + element.dispatchEvent(evt); }; var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { @@ -123,7 +125,7 @@ var DATA_KEY = 'bs.tab'; var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; - var Event$1 = { + var Event = { HIDE: "hide" + EVENT_KEY, HIDDEN: "hidden" + EVENT_KEY, SHOW: "show" + EVENT_KEY, @@ -186,12 +188,12 @@ var hideEvent = null; if (previous) { - hideEvent = EventHandler.trigger(previous, Event$1.HIDE, { + hideEvent = EventHandler.trigger(previous, Event.HIDE, { relatedTarget: this._element }); } - var showEvent = EventHandler.trigger(this._element, Event$1.SHOW, { + var showEvent = EventHandler.trigger(this._element, Event.SHOW, { relatedTarget: previous }); @@ -206,10 +208,10 @@ this._activate(this._element, listElement); var complete = function complete() { - EventHandler.trigger(previous, Event$1.HIDDEN, { + EventHandler.trigger(previous, Event.HIDDEN, { relatedTarget: _this._element }); - EventHandler.trigger(_this._element, Event$1.SHOWN, { + EventHandler.trigger(_this._element, Event.SHOWN, { relatedTarget: previous }); }; @@ -326,7 +328,7 @@ */ - EventHandler.on(document, Event$1.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { + EventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { event.preventDefault(); var data = Data.getData(this, DATA_KEY) || new Tab(this); data.show(); diff --git a/js/dist/tab.js.map b/js/dist/tab.js.map index 5931988f9e..2c738002b5 100644 --- a/js/dist/tab.js.map +++ b/js/dist/tab.js.map @@ -1 +1 @@ -{"version":3,"file":"tab.js","sources":["../src/util/index.js","../src/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","makeArray","nodeList","slice","call","reflow","offsetHeight","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","HIDE","HIDDEN","SHOW","SHOWN","CLICK_DATA_API","ClassName","DROPDOWN_MENU","ACTIVE","DISABLED","FADE","Selector","DROPDOWN","NAV_LIST_GROUP","ACTIVE_UL","DATA_TOGGLE","DROPDOWN_TOGGLE","DROPDOWN_ACTIVE_CHILD","Tab","_element","Data","setData","show","parentNode","nodeType","Node","ELEMENT_NODE","classList","contains","target","previous","listElement","SelectorEngine","closest","itemSelector","nodeName","find","length","hideEvent","EventHandler","trigger","relatedTarget","showEvent","defaultPrevented","findOne","_activate","complete","dispose","removeData","container","callback","activeElements","children","active","isTransitioning","_transitionComplete","remove","one","dropdownChild","setAttribute","add","dropdownElement","forEach","dropdown","_jQueryInterface","config","each","data","getData","TypeError","_getInstance","on","event","preventDefault","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"tab.js","sources":["../src/util/index.js","../src/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","makeArray","nodeList","slice","call","reflow","offsetHeight","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK_DATA_API","ClassName","DROPDOWN_MENU","ACTIVE","DISABLED","FADE","Selector","DROPDOWN","NAV_LIST_GROUP","ACTIVE_UL","DATA_TOGGLE","DROPDOWN_TOGGLE","DROPDOWN_ACTIVE_CHILD","Tab","_element","Data","setData","show","parentNode","nodeType","Node","ELEMENT_NODE","classList","contains","target","previous","listElement","SelectorEngine","closest","itemSelector","nodeName","find","length","hideEvent","EventHandler","trigger","relatedTarget","showEvent","defaultPrevented","findOne","_activate","complete","dispose","removeData","container","callback","activeElements","children","active","isTransitioning","_transitionComplete","remove","one","dropdownChild","setAttribute","add","dropdownElement","forEach","dropdown","_jQueryInterface","config","each","data","getData","TypeError","_getInstance","on","event","preventDefault","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/toast.js b/js/dist/toast.js index 2dd6821d55..92947135a6 100644 --- a/js/dist/toast.js +++ b/js/dist/toast.js @@ -102,7 +102,9 @@ }; var triggerTransitionEnd = function triggerTransitionEnd(element) { - element.dispatchEvent(new Event(TRANSITION_END)); + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(TRANSITION_END, true, true); + element.dispatchEvent(evt); }; var isElement = function isElement(obj) { @@ -149,7 +151,7 @@ var VERSION = '4.3.1'; var DATA_KEY = 'bs.toast'; var EVENT_KEY = "." + DATA_KEY; - var Event$1 = { + var Event = { CLICK_DISMISS: "click.dismiss" + EVENT_KEY, HIDE: "hide" + EVENT_KEY, HIDDEN: "hidden" + EVENT_KEY, @@ -202,7 +204,7 @@ _proto.show = function show() { var _this = this; - EventHandler.trigger(this._element, Event$1.SHOW); + EventHandler.trigger(this._element, Event.SHOW); if (this._config.animation) { this._element.classList.add(ClassName.FADE); @@ -213,10 +215,12 @@ _this._element.classList.add(ClassName.SHOW); - EventHandler.trigger(_this._element, Event$1.SHOWN); + EventHandler.trigger(_this._element, Event.SHOWN); if (_this._config.autohide) { - _this.hide(); + _this._timeout = setTimeout(function () { + _this.hide(); + }, _this._config.delay); } }; @@ -233,21 +237,29 @@ } }; - _proto.hide = function hide(withoutTimeout) { + _proto.hide = function hide() { var _this2 = this; if (!this._element.classList.contains(ClassName.SHOW)) { return; } - EventHandler.trigger(this._element, Event$1.HIDE); + EventHandler.trigger(this._element, Event.HIDE); - if (withoutTimeout) { - this._close(); + var complete = function complete() { + _this2._element.classList.add(ClassName.HIDE); + + EventHandler.trigger(_this2._element, Event.HIDDEN); + }; + + this._element.classList.remove(ClassName.SHOW); + + if (this._config.animation) { + var transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler.one(this._element, TRANSITION_END, complete); + emulateTransitionEnd(this._element, transitionDuration); } else { - this._timeout = setTimeout(function () { - _this2._close(); - }, this._config.delay); + complete(); } }; @@ -259,7 +271,7 @@ this._element.classList.remove(ClassName.SHOW); } - EventHandler.off(this._element, Event$1.CLICK_DISMISS); + EventHandler.off(this._element, Event.CLICK_DISMISS); Data.removeData(this._element, DATA_KEY); this._element = null; this._config = null; @@ -275,29 +287,9 @@ _proto._setListeners = function _setListeners() { var _this3 = this; - EventHandler.on(this._element, Event$1.CLICK_DISMISS, Selector.DATA_DISMISS, function () { - return _this3.hide(true); + EventHandler.on(this._element, Event.CLICK_DISMISS, Selector.DATA_DISMISS, function () { + return _this3.hide(); }); - }; - - _proto._close = function _close() { - var _this4 = this; - - var complete = function complete() { - _this4._element.classList.add(ClassName.HIDE); - - EventHandler.trigger(_this4._element, Event$1.HIDDEN); - }; - - this._element.classList.remove(ClassName.SHOW); - - if (this._config.animation) { - var transitionDuration = getTransitionDurationFromElement(this._element); - EventHandler.one(this._element, TRANSITION_END, complete); - emulateTransitionEnd(this._element, transitionDuration); - } else { - complete(); - } } // Static ; diff --git a/js/dist/toast.js.map b/js/dist/toast.js.map index 112a082ca2..8dc01953ff 100644 --- a/js/dist/toast.js.map +++ b/js/dist/toast.js.map @@ -1 +1 @@ -{"version":3,"file":"toast.js","sources":["../src/util/index.js","../src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getTransitionDurationFromElement","element","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","NAME","VERSION","DATA_KEY","EVENT_KEY","CLICK_DISMISS","HIDE","HIDDEN","SHOW","SHOWN","ClassName","FADE","SHOWING","DefaultType","animation","autohide","delay","Default","Selector","DATA_DISMISS","Toast","_element","_config","_getConfig","_timeout","_setListeners","Data","setData","show","EventHandler","trigger","classList","add","complete","remove","hide","one","withoutTimeout","contains","_close","dispose","clearTimeout","off","removeData","Manipulator","getDataAttributes","constructor","on","_jQueryInterface","each","data","getData","TypeError","_getInstance","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"toast.js","sources":["../src/util/index.js","../src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getTransitionDurationFromElement","element","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","document","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","NAME","VERSION","DATA_KEY","EVENT_KEY","Event","CLICK_DISMISS","HIDE","HIDDEN","SHOW","SHOWN","ClassName","FADE","SHOWING","DefaultType","animation","autohide","delay","Default","Selector","DATA_DISMISS","Toast","_element","_config","_getConfig","_timeout","_setListeners","Data","setData","show","EventHandler","trigger","classList","add","complete","remove","hide","one","contains","dispose","clearTimeout","off","removeData","Manipulator","getDataAttributes","constructor","on","_jQueryInterface","each","data","getData","TypeError","_getInstance","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file diff --git a/js/dist/tooltip.js b/js/dist/tooltip.js index bf0cea322f..20ba46bf62 100644 --- a/js/dist/tooltip.js +++ b/js/dist/tooltip.js @@ -120,7 +120,9 @@ }; var triggerTransitionEnd = function triggerTransitionEnd(element) { - element.dispatchEvent(new Event(TRANSITION_END)); + var evt = document.createEvent('HTMLEvents'); + evt.initEvent(TRANSITION_END, true, true); + element.dispatchEvent(evt); }; var isElement = function isElement(obj) { @@ -372,7 +374,7 @@ SHOW: 'show', OUT: 'out' }; - var Event$1 = { + var Event = { HIDE: "hide" + EVENT_KEY, HIDDEN: "hidden" + EVENT_KEY, SHOW: "show" + EVENT_KEY, @@ -1032,7 +1034,7 @@ }, { key: "Event", get: function get() { - return Event$1; + return Event; } }, { key: "EVENT_KEY", diff --git a/js/dist/tooltip.js.map b/js/dist/tooltip.js.map index db9017db37..3241e618ad 100644 --- a/js/dist/tooltip.js.map +++ b/js/dist/tooltip.js.map @@ -1 +1 @@ -{"version":3,"file":"tooltip.js","sources":["../src/util/index.js","../src/util/sanitizer.js","../src/tooltip.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getTransitionDurationFromElement","element","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","noop","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","indexOf","Boolean","nodeValue","regExp","filter","attrRegex","i","l","length","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","body","querySelectorAll","len","el","elName","removeChild","attributeList","attributes","whitelistedAttributes","concat","removeAttribute","innerHTML","NAME","VERSION","DATA_KEY","EVENT_KEY","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType","animation","template","title","trigger","delay","html","selector","placement","offset","container","fallbackPlacement","boundary","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default","HoverState","SHOW","OUT","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","ClassName","FADE","Selector","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","FOCUS","MANUAL","Tooltip","Popper","TypeError","_isEnabled","_timeout","_hoverState","_activeTrigger","_popper","_getConfig","tip","_setListeners","Data","setData","constructor","enable","disable","toggleEnabled","toggle","event","dataKey","context","getData","delegateTarget","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","classList","contains","dispose","clearTimeout","removeData","EventHandler","off","SelectorEngine","closest","destroy","show","style","display","isWithContent","showEvent","shadowRoot","isInTheDom","ownerDocument","defaultPrevented","tipId","setAttribute","setContent","add","attachment","_getAttachment","addAttachmentClass","_getContainer","appendChild","modifiers","_getOffset","flip","behavior","arrow","preventOverflow","boundariesElement","onCreate","data","originalPlacement","_handlePopperPlacementChange","onUpdate","children","on","complete","_fixTransition","prevHoverState","one","hide","callback","_cleanTipClass","hideEvent","remove","update","scheduleUpdate","getTitle","createElement","setElementContent","findOne","content","jquery","innerText","textContent","getAttribute","fn","offsets","triggers","eventIn","eventOut","_fixTitle","titleType","type","dataAttributes","Manipulator","getDataAttributes","dataAttr","key","tabClass","map","token","trim","tClass","popperData","popperInstance","instance","popper","initConfigAnimation","_jQueryInterface","each","_config","_getInstance","$","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"tooltip.js","sources":["../src/util/index.js","../src/util/sanitizer.js","../src/tooltip.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getTransitionDurationFromElement","element","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","noop","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","indexOf","Boolean","nodeValue","regExp","filter","attrRegex","i","l","length","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","body","querySelectorAll","len","el","elName","removeChild","attributeList","attributes","whitelistedAttributes","concat","removeAttribute","innerHTML","NAME","VERSION","DATA_KEY","EVENT_KEY","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType","animation","template","title","trigger","delay","html","selector","placement","offset","container","fallbackPlacement","boundary","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default","HoverState","SHOW","OUT","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","ClassName","FADE","Selector","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","FOCUS","MANUAL","Tooltip","Popper","TypeError","_isEnabled","_timeout","_hoverState","_activeTrigger","_popper","_getConfig","tip","_setListeners","Data","setData","constructor","enable","disable","toggleEnabled","toggle","event","dataKey","context","getData","delegateTarget","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","classList","contains","dispose","clearTimeout","removeData","EventHandler","off","SelectorEngine","closest","destroy","show","style","display","isWithContent","showEvent","shadowRoot","isInTheDom","ownerDocument","defaultPrevented","tipId","setAttribute","setContent","add","attachment","_getAttachment","addAttachmentClass","_getContainer","appendChild","modifiers","_getOffset","flip","behavior","arrow","preventOverflow","boundariesElement","onCreate","data","originalPlacement","_handlePopperPlacementChange","onUpdate","children","on","complete","_fixTransition","prevHoverState","one","hide","callback","_cleanTipClass","hideEvent","remove","update","scheduleUpdate","getTitle","createElement","setElementContent","findOne","content","jquery","innerText","textContent","getAttribute","fn","offsets","triggers","eventIn","eventOut","_fixTitle","titleType","type","dataAttributes","Manipulator","getDataAttributes","dataAttr","key","tabClass","map","token","trim","tClass","popperData","popperInstance","instance","popper","initConfigAnimation","_jQueryInterface","each","_config","_getInstance","$","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"}
\ No newline at end of file diff --git a/site/static/docs/4.3/assets/css/docs.min.css b/site/static/docs/4.3/assets/css/docs.min.css index ac55cdc363..33ade65a9b 100644 --- a/site/static/docs/4.3/assets/css/docs.min.css +++ b/site/static/docs/4.3/assets/css/docs.min.css @@ -4,5 +4,5 @@ * Copyright 2011-2019 Twitter, Inc. * Licensed under the Creative Commons Attribution 3.0 Unported License. * For details, see https://creativecommons.org/licenses/by/3.0/. - */.bd-navbar{min-height:4rem;background-color:#563d7c;box-shadow:0 .5rem 1rem rgba(0,0,0,.05),inset 0 -1px 0 rgba(0,0,0,.1)}@media (max-width:991.98px){.bd-navbar{padding-right:.5rem;padding-left:.5rem}.bd-navbar .navbar-nav-scroll{max-width:100%;height:2.5rem;margin-top:.25rem;overflow:hidden}.bd-navbar .navbar-nav-scroll .navbar-nav{padding-bottom:2rem;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.bd-navbar{position:-webkit-sticky;position:sticky;top:0;z-index:1071}}}.bd-navbar .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem;color:#cbbde2}.bd-navbar .navbar-nav .nav-link.active,.bd-navbar .navbar-nav .nav-link:hover{color:#fff;background-color:transparent}.bd-navbar .navbar-nav .nav-link.active{font-weight:600}.bd-navbar .navbar-nav-svg{display:inline-block;width:1rem;height:1rem;vertical-align:text-top}.bd-navbar .dropdown-menu{font-size:.875rem}.bd-navbar .dropdown-item.active{font-weight:600;color:#212529;background-color:transparent;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' 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:.4rem .6rem;background-size:.75rem .75rem}.bd-masthead{position:relative;padding:3rem 15px}.bd-masthead h1{font-size:4rem;line-height:1}@media (max-width:1200px){.bd-masthead h1{font-size:calc(1.525rem + 3.3vw)}}.bd-masthead .btn{padding:.8rem 2rem;font-weight:600;font-size:1.25rem}.bd-masthead .carbonad{margin-top:0!important;margin-bottom:-3rem!important}@media (min-width:576px){.bd-masthead{padding-top:5rem;padding-bottom:5rem}.bd-masthead .carbonad{margin-bottom:0!important}}@media (min-width:768px){.bd-masthead .carbonad{margin-top:3rem!important}}.half-rule{width:6rem;margin:2.5rem 0}.masthead-followup .bd-clipboard{display:none}.masthead-followup .highlight{padding:.5rem 0;background-color:transparent}#carbonads{position:static;display:block;max-width:400px;padding:15px 15px 15px 160px;margin:2rem 0;overflow:hidden;font-size:.8125rem;line-height:1.4;text-align:left;background-color:rgba(0,0,0,.05)}#carbonads a{color:#333;text-decoration:none}@media (min-width:576px){#carbonads{max-width:330px;border-radius:4px}}.carbon-img{float:left;margin-left:-145px}.carbon-poweredby{display:block;color:#777!important}.bd-content{order:1}.bd-content>h2[id],.bd-content>h3[id],.bd-content>h4[id]{pointer-events:none}.bd-content>h2[id]::before,.bd-content>h3[id]::before,.bd-content>h4[id]::before{display:block;height:6rem;margin-top:-6rem;content:""}.bd-content>table{width:100%;max-width:100%;margin-bottom:1rem}@media (max-width:991.98px){.bd-content>table{display:block;overflow-x:auto}.bd-content>table.table-bordered{border:0}}.bd-content>table>tbody>tr>td,.bd-content>table>tbody>tr>th,.bd-content>table>tfoot>tr>td,.bd-content>table>tfoot>tr>th,.bd-content>table>thead>tr>td,.bd-content>table>thead>tr>th{padding:.75rem;vertical-align:top;border:1px solid #dee2e6}.bd-content>table>tbody>tr>td>p:last-child,.bd-content>table>tbody>tr>th>p:last-child,.bd-content>table>tfoot>tr>td>p:last-child,.bd-content>table>tfoot>tr>th>p:last-child,.bd-content>table>thead>tr>td>p:last-child,.bd-content>table>thead>tr>th>p:last-child{margin-bottom:0}.bd-content>table td:first-child>code{white-space:nowrap}.bd-content-title{display:block;pointer-events:auto}.bd-content>h2{font-size:2rem}@media (max-width:1200px){.bd-content>h2{font-size:calc(1.325rem + .9vw)}}.bd-content>h3{font-size:1.75rem}@media (max-width:1200px){.bd-content>h3{font-size:calc(1.3rem + .6vw)}}.bd-content>h4{font-size:1.5rem}@media (max-width:1200px){.bd-content>h4{font-size:calc(1.275rem + .3vw)}}.bd-content>h2:not(:first-child){margin-top:3rem}.bd-content>h3{margin-top:1.5rem}.bd-content>ol li,.bd-content>ul li{margin-bottom:.25rem}@media (min-width:992px){.bd-content>ol,.bd-content>p,.bd-content>ul{max-width:80%}}.bd-title{margin-top:1rem;margin-bottom:.5rem;font-weight:300;font-size:3rem}@media (max-width:1200px){.bd-title{font-size:calc(1.425rem + 2.1vw)}}.bd-lead{font-size:1.5rem;font-weight:300}@media (max-width:1200px){.bd-lead{font-size:calc(1.275rem + .3vw)}}@media (min-width:992px){.bd-lead{max-width:80%}}.bd-text-purple{color:#563d7c}.bd-text-purple-bright{color:#7952b3}.skippy{display:block;padding:1em;color:#fff;text-align:center;background-color:#563d7c;outline:0}.skippy:hover{color:#fff}.skippy-text{padding:.5em;outline:1px dotted}.bd-toc{order:2;padding-top:1.5rem;padding-bottom:1.5rem;font-size:.875rem}@supports ((position:-webkit-sticky) or (position:sticky)){.bd-toc{position:-webkit-sticky;position:sticky;top:4rem;height:calc(100vh - 4rem);overflow-y:auto}}.section-nav{padding-left:0;border-left:1px solid #eee}.section-nav ul{padding-left:1rem}.toc-entry{display:block}.toc-entry a{display:block;padding:.125rem 1.5rem;color:#77757a}.toc-entry a:hover{color:#007bff;text-decoration:none}.bd-sidebar{order:0;border-bottom:1px solid rgba(0,0,0,.1)}@media (min-width:768px){.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:4rem;z-index:1000;height:calc(100vh - 4rem)}}}@media (min-width:1200px){.bd-sidebar{flex:0 1 320px}}.bd-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.bd-links{max-height:calc(100vh - 9rem);overflow-y:auto}}}@media (min-width:768px){.bd-links{display:block!important}}.bd-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px;border-bottom:1px solid rgba(0,0,0,.05)}.bd-search .form-control:focus{border-color:#7952b3;box-shadow:0 0 0 3px rgba(121,82,179,.25)}.bd-search-docs-toggle{line-height:1;color:#212529}.bd-sidenav{display:none}.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}.bd-sidebar .nav>li>a{display:block;padding:.25rem 1.5rem;font-size:90%;color:rgba(0,0,0,.65)}.bd-sidebar .nav>li>a:hover{color:rgba(0,0,0,.85);text-decoration:none;background-color:transparent}.bd-sidebar .nav>.active:hover>a,.bd-sidebar .nav>.active>a{font-weight:600;color:rgba(0,0,0,.85);background-color:transparent}.bd-footer{font-size:.875rem;text-align:center;background-color:#f7f7f7}.bd-footer a{font-weight:600;color:#495057}.bd-footer a:focus,.bd-footer a:hover{color:#007bff}.bd-footer p{margin-bottom:0}@media (min-width:576px){.bd-footer{text-align:left}}.bd-footer-links{padding-left:0;margin-bottom:1rem}.bd-footer-links li{display:inline-block}.bd-footer-links li+li{margin-left:1rem}.bd-example-row .row>.col,.bd-example-row .row>[class^=col-]{padding-top:.75rem;padding-bottom:.75rem;background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.2)}.bd-example-row .row+.row{margin-top:1rem}.bd-example-row .flex-items-bottom,.bd-example-row .flex-items-middle,.bd-example-row .flex-items-top{min-height:6rem;background-color:rgba(255,0,0,.1)}.bd-example-row-flex-cols .row{min-height:10rem;background-color:rgba(255,0,0,.1)}.bd-highlight{background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.15)}.example-container{width:800px;width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.example-row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.example-content-main{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-main{flex:0 0 50%;max-width:50%}}@media (min-width:992px){.example-content-main{flex:0 0 66.666667%;max-width:66.666667%}}.example-content-secondary{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-secondary{flex:0 0 50%;max-width:50%}}@media (min-width:992px){.example-content-secondary{flex:0 0 33.333333%;max-width:33.333333%}}.bd-example-container{min-width:16rem;max-width:25rem;margin-right:auto;margin-left:auto}.bd-example-container-header{height:3rem;margin-bottom:.5rem;background-color:#fff;border-radius:.25rem}.bd-example-container-sidebar{float:right;width:4rem;height:8rem;background-color:#80bdff;border-radius:.25rem}.bd-example-container-body{height:8rem;margin-right:4.5rem;background-color:#957bbe;border-radius:.25rem}.bd-example-container-fluid{max-width:none}.bd-example{position:relative;padding:1rem;margin:1rem -15px 0;border:solid #f8f9fa;border-width:.2rem 0 0}.bd-example::after{display:block;clear:both;content:""}@media (min-width:576px){.bd-example{padding:1.5rem;margin-right:0;margin-left:0;border-width:.2rem}}.bd-example+.clipboard+.highlight,.bd-example+.highlight{margin-top:0}.bd-example+p{margin-top:2rem}.bd-example .pos-f-t{position:relative;margin:-1rem}@media (min-width:576px){.bd-example .pos-f-t{margin:-1.5rem}}.bd-example .custom-file-input:lang(es)~.custom-file-label::after{content:"Elegir"}.bd-example>.form-control+.form-control{margin-top:.5rem}.bd-example>.alert+.alert,.bd-example>.nav+.nav,.bd-example>.navbar+.navbar,.bd-example>.progress+.btn,.bd-example>.progress+.progress{margin-top:1rem}.bd-example>.dropdown-menu:first-child{position:static;display:block}.bd-example>.form-group:last-child{margin-bottom:0}.bd-example>.close{float:none}.bd-example-type .table td{padding:1rem 0;border-color:#eee}.bd-example-type .table tr:first-child td{border-top:0}.bd-example-type h1,.bd-example-type h2,.bd-example-type h3,.bd-example-type h4,.bd-example-type h5,.bd-example-type h6{margin-top:0;margin-bottom:0}.bd-example-bg-classes p{padding:1rem}.bd-example>img+img,.bd-example>svg+svg{margin-left:.5rem}.bd-example>.btn,.bd-example>.btn-group{margin-top:.25rem;margin-bottom:.25rem}.bd-example>.btn-toolbar+.btn-toolbar{margin-top:.5rem}.bd-example-control-sizing input[type=text]+input[type=text],.bd-example-control-sizing select{margin-top:.5rem}.bd-example-form .input-group{margin-bottom:.5rem}.bd-example>textarea.form-control{resize:vertical}.bd-example>.list-group{max-width:400px}.bd-example>[class*=list-group-horizontal]{max-width:100%}.bd-example .fixed-top,.bd-example .sticky-top{position:static;margin:-1rem -1rem 1rem}.bd-example .fixed-bottom{position:static;margin:1rem -1rem -1rem}@media (min-width:576px){.bd-example .fixed-top,.bd-example .sticky-top{margin:-1.5rem -1.5rem 1rem}.bd-example .fixed-bottom{margin:1rem -1.5rem -1.5rem}}.bd-example .pagination{margin-top:.5rem;margin-bottom:.5rem}.modal{z-index:1072}.modal .popover,.modal .tooltip{z-index:1073}.modal-backdrop{z-index:1071}.bd-example-modal{background-color:#fafafa}.bd-example-modal .modal{position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:1;display:block}.bd-example-modal .modal-dialog{left:auto;margin-right:auto;margin-left:auto}.bd-example-tabs .nav-tabs{margin-bottom:1rem}.bd-example-popover-static{padding-bottom:1.5rem;background-color:#f9f9f9}.bd-example-popover-static .popover{position:relative;display:block;float:left;width:260px;margin:1.25rem}.tooltip-demo a{white-space:nowrap}.bd-example-tooltip-static .tooltip{position:relative;display:inline-block;margin:10px 20px;opacity:1}.scrollspy-example{position:relative;height:200px;margin-top:.5rem;overflow:auto}.scrollspy-example-2{position:relative;height:350px;overflow:auto}.bd-example-border-utils [class^=border]{display:inline-block;width:5rem;height:5rem;margin:.25rem;background-color:#f5f5f5}.bd-example-border-utils-0 [class^=border]{border:1px solid #dee2e6}.highlight{padding:1rem;margin-top:1rem;margin-bottom:1rem;background-color:#f8f9fa;-ms-overflow-style:-ms-autohiding-scrollbar}@media (min-width:576px){.highlight{padding:1.5rem}}.bd-content .highlight{margin-right:-15px;margin-left:-15px}@media (min-width:576px){.bd-content .highlight{margin-right:0;margin-left:0}}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0}.highlight pre code{font-size:inherit;color:#212529}.btn-bd-primary{font-weight:600;color:#7952b3;border-color:#7952b3}.btn-bd-primary:active,.btn-bd-primary:hover{color:#fff;background-color:#7952b3;border-color:#7952b3}.btn-bd-primary:focus{box-shadow:0 0 0 3px rgba(121,82,179,.25)}.btn-bd-download{font-weight:600;color:#ffe484;border-color:#ffe484}.btn-bd-download:active,.btn-bd-download:hover{color:#2a2730;background-color:#ffe484;border-color:#ffe484}.btn-bd-download:focus{box-shadow:0 0 0 3px rgba(255,228,132,.25)}.bd-callout{padding:1.25rem;margin-top:1.25rem;margin-bottom:1.25rem;border:1px solid #eee;border-left-width:.25rem;border-radius:.25rem}.bd-callout h4{margin-top:0;margin-bottom:.25rem}.bd-callout p:last-child{margin-bottom:0}.bd-callout code{border-radius:.25rem}.bd-callout+.bd-callout{margin-top:-.25rem}.bd-callout-info{border-left-color:#5bc0de}.bd-callout-info h4{color:#5bc0de}.bd-callout-warning{border-left-color:#f0ad4e}.bd-callout-warning h4{color:#f0ad4e}.bd-callout-danger{border-left-color:#d9534f}.bd-callout-danger h4{color:#d9534f}.bd-browser-bugs td p{margin-bottom:0}.bd-browser-bugs th:first-child{width:18%}.bd-brand-logos{display:table;width:100%;margin-bottom:1rem;overflow:hidden;color:#563d7c;background-color:#f9f9f9;border-radius:.25rem}.bd-brand-logos .inverse{color:#fff;background-color:#563d7c}.bd-brand-item{padding:4rem 0;text-align:center}.bd-brand-item+.bd-brand-item{border-top:1px solid #fff}.bd-brand-item h1,.bd-brand-item h3{margin-top:0;margin-bottom:0}@media (min-width:768px){.bd-brand-item{display:table-cell;width:1%}.bd-brand-item+.bd-brand-item{border-top:0;border-left:1px solid #fff}.bd-brand-item h1{font-size:4rem}}@media (min-width:768px) and (max-width:1200px){.bd-brand-item h1{font-size:calc(1.525rem + 3.3vw)}}.color-swatches{margin:0 -5px;overflow:hidden}.color-swatches .bd-purple{background-color:#563d7c}.color-swatches .bd-purple-light{background-color:#cbbde2}.color-swatches .bd-purple-lighter{background-color:#e5e1ea}.color-swatches .bd-gray{background-color:#f9f9f9}.color-swatch{float:left;width:4rem;height:4rem;margin-right:.25rem;margin-left:.25rem;border-radius:.25rem}@media (min-width:768px){.color-swatch{width:6rem;height:6rem}}.swatch-blue{color:#fff;background-color:#007bff}.swatch-indigo{color:#fff;background-color:#6610f2}.swatch-purple{color:#fff;background-color:#6f42c1}.swatch-pink{color:#fff;background-color:#e83e8c}.swatch-red{color:#fff;background-color:#dc3545}.swatch-orange{color:#212529;background-color:#fd7e14}.swatch-yellow{color:#212529;background-color:#ffc107}.swatch-green{color:#fff;background-color:#28a745}.swatch-teal{color:#fff;background-color:#20c997}.swatch-cyan{color:#fff;background-color:#17a2b8}.swatch-white{color:#212529;background-color:#fff}.swatch-gray{color:#fff;background-color:#6c757d}.swatch-gray-dark{color:#fff;background-color:#343a40}.swatch-primary{color:#fff;background-color:#007bff}.swatch-secondary{color:#fff;background-color:#6c757d}.swatch-success{color:#fff;background-color:#28a745}.swatch-info{color:#fff;background-color:#17a2b8}.swatch-warning{color:#212529;background-color:#ffc107}.swatch-danger{color:#fff;background-color:#dc3545}.swatch-light{color:#212529;background-color:#f8f9fa}.swatch-dark{color:#fff;background-color:#343a40}.swatch-100{color:#212529;background-color:#f8f9fa}.swatch-200{color:#212529;background-color:#e9ecef}.swatch-300{color:#212529;background-color:#dee2e6}.swatch-400{color:#212529;background-color:#ced4da}.swatch-500{color:#212529;background-color:#adb5bd}.swatch-600{color:#fff;background-color:#6c757d}.swatch-700{color:#fff;background-color:#495057}.swatch-800{color:#fff;background-color:#343a40}.swatch-900{color:#fff;background-color:#212529}.bd-clipboard{position:relative;display:none;float:right}.bd-clipboard+.highlight{margin-top:0}@media (min-width:768px){.bd-clipboard{display:block}}.btn-clipboard{position:absolute;top:.5rem;right:.5rem;z-index:10;display:block;padding:.25rem .5rem;font-size:75%;color:#818a91;background-color:transparent;border:0;border-radius:.25rem}.btn-clipboard:hover{color:#fff;background-color:#027de7}.bd-placeholder-img{font-size:1.125rem;text-anchor:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bd-placeholder-img-lg{font-size:3.5rem}@media (max-width:1200px){.bd-placeholder-img-lg{font-size:calc(1.475rem + 2.7vw)}}.hll{background-color:#ffc}.c{color:#999}.k{color:#069}.o{color:#555}.cm{color:#999}.cp{color:#099}.c1{color:#999}.cs{color:#999}.gd{background-color:#fcc;border:1px solid #c00}.ge{font-style:italic}.gr{color:red}.gh{color:#030}.gi{background-color:#cfc;border:1px solid #0c0}.go{color:#aaa}.gp{color:#009}.gu{color:#030}.gt{color:#9c6}.kc{color:#069}.kd{color:#069}.kn{color:#069}.kp{color:#069}.kr{color:#069}.kt{color:#078}.m{color:#f60}.s{color:#d44950}.na{color:#4f9fcf}.nb{color:#366}.nc{color:#0a8}.no{color:#360}.nd{color:#99f}.ni{color:#999}.ne{color:#c00}.nf{color:#c0f}.nl{color:#99f}.nn{color:#0cf}.nt{color:#2f6f9f}.nv{color:#033}.ow{color:#000}.w{color:#bbb}.mf{color:#f60}.mh{color:#f60}.mi{color:#f60}.mo{color:#f60}.sb{color:#c30}.sc{color:#c30}.sd{font-style:italic;color:#c30}.s2{color:#c30}.se{color:#c30}.sh{color:#c30}.si{color:#a00}.sx{color:#c30}.sr{color:#3aa}.s1{color:#c30}.ss{color:#fc3}.bp{color:#366}.vc{color:#033}.vg{color:#033}.vi{color:#033}.il{color:#f60}.css .nt+.nt,.css .o,.css .o+.nt{color:#999}.language-bash::before,.language-sh::before{color:#009;content:"$ ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.language-powershell::before{color:#009;content:"PM> ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.anchorjs-link{font-weight:400;color:rgba(0,123,255,.5);transition:color .15s ease-in-out,opacity .15s ease-in-out}@media (prefers-reduced-motion:reduce){.anchorjs-link{transition:none}}.anchorjs-link:hover{color:#007bff;text-decoration:none}.algolia-autocomplete{display:block!important;flex:1}.algolia-autocomplete .ds-dropdown-menu{width:100%;min-width:0!important;max-width:none!important;padding:.75rem 0!important;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.175)}@media (min-width:768px){.algolia-autocomplete .ds-dropdown-menu{width:175%}}.algolia-autocomplete .ds-dropdown-menu::before{display:none!important}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{padding:0!important;overflow:visible!important;background-color:transparent!important;border:0!important}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{margin-top:0!important}.algolia-autocomplete .algolia-docsearch-suggestion{padding:0!important;overflow:visible!important}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{padding:.125rem 1rem!important;margin-top:0!important;font-size:.875rem!important;font-weight:600!important;color:#7952b3!important;border-bottom:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{float:none!important;padding-top:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:none!important;width:auto!important;padding:0!important;text-align:left!important}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:block!important;font-size:.875rem;color:#495057}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline::after{padding:0 .25rem;content:"/"}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:flex;flex-wrap:wrap;float:none!important;width:100%!important;padding:.25rem 1rem!important}.algolia-autocomplete .algolia-docsearch-suggestion--content::before{display:none!important}.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header{padding-top:.75rem!important;margin-top:.75rem!important;border-top:1px solid rgba(0,0,0,.1)}.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column{display:none!important}.algolia-autocomplete .algolia-docsearch-suggestion--title{display:block;margin-bottom:0!important;font-size:.875rem!important;font-weight:400!important}.algolia-autocomplete .algolia-docsearch-suggestion--text{flex:0 0 100%;max-width:100%;padding:.2rem 0;font-size:.8125rem!important;font-weight:400;line-height:1.25!important;color:#6c757d}.algolia-autocomplete .algolia-docsearch-footer{float:none!important;width:auto!important;height:auto!important;padding:.75rem 1rem 0;font-size:.75rem!important;line-height:1!important;color:#767676!important;border-top:1px solid rgba(0,0,0,.1)}.algolia-autocomplete .algolia-docsearch-footer--logo{display:inline!important;overflow:visible!important;color:inherit!important;text-indent:0!important;background:0 0!important}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#5f2dab;background-color:rgba(154,132,187,.12)}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:inset 0 -2px 0 0 rgba(95,45,171,.5)!important}.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content{background-color:rgba(208,189,236,.15)!important} + */.bd-navbar{min-height:4rem;background-color:#563d7c;box-shadow:0 .5rem 1rem rgba(0,0,0,.05),inset 0 -1px 0 rgba(0,0,0,.1)}@media (max-width:991.98px){.bd-navbar{padding-right:.5rem;padding-left:.5rem}.bd-navbar .navbar-nav-scroll{max-width:100%;height:2.5rem;margin-top:.25rem;overflow:hidden}.bd-navbar .navbar-nav-scroll .navbar-nav{padding-bottom:2rem;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.bd-navbar{position:-webkit-sticky;position:sticky;top:0;z-index:1071}}}.bd-navbar .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem;color:#cbbde2}.bd-navbar .navbar-nav .nav-link.active,.bd-navbar .navbar-nav .nav-link:hover{color:#fff;background-color:transparent}.bd-navbar .navbar-nav .nav-link.active{font-weight:600}.bd-navbar .navbar-nav-svg{display:inline-block;width:1rem;height:1rem;vertical-align:text-top}.bd-navbar .dropdown-menu{font-size:.875rem}.bd-navbar .dropdown-item.active{font-weight:600;color:#212529;background-color:transparent;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' 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:.4rem .6rem;background-size:.75rem .75rem}.bd-masthead{position:relative;padding:3rem 15px}.bd-masthead h1{font-size:4rem;line-height:1}@media (max-width:1200px){.bd-masthead h1{font-size:calc(1.525rem + 3.3vw)}}.bd-masthead .btn{padding:.8rem 2rem;font-weight:600;font-size:1.25rem}.bd-masthead .carbonad{margin-top:0!important;margin-bottom:-3rem!important}@media (min-width:576px){.bd-masthead{padding-top:5rem;padding-bottom:5rem}.bd-masthead .carbonad{margin-bottom:0!important}}@media (min-width:768px){.bd-masthead .carbonad{margin-top:3rem!important}}.half-rule{width:6rem;margin:2.5rem 0}.masthead-followup .bd-clipboard{display:none}.masthead-followup .highlight{padding:.5rem 0;background-color:transparent}#carbonads{position:static;display:block;max-width:400px;padding:15px 15px 15px 160px;margin:2rem 0;overflow:hidden;font-size:.8125rem;line-height:1.4;text-align:left;background-color:rgba(0,0,0,.05)}#carbonads a{color:#333;text-decoration:none}@media (min-width:576px){#carbonads{max-width:330px;border-radius:4px}}.carbon-img{float:left;margin-left:-145px}.carbon-poweredby{display:block;color:#777!important}.bd-content{order:1}.bd-content>h2[id],.bd-content>h3[id],.bd-content>h4[id]{pointer-events:none}.bd-content>h2[id]::before,.bd-content>h3[id]::before,.bd-content>h4[id]::before{display:block;height:6rem;margin-top:-6rem;content:""}.bd-content>table{width:100%;max-width:100%;margin-bottom:1rem}@media (max-width:991.98px){.bd-content>table{display:block;overflow-x:auto}.bd-content>table.table-bordered{border:0}}.bd-content>table>tbody>tr>td,.bd-content>table>tbody>tr>th,.bd-content>table>tfoot>tr>td,.bd-content>table>tfoot>tr>th,.bd-content>table>thead>tr>td,.bd-content>table>thead>tr>th{padding:.75rem;vertical-align:top;border:1px solid #dee2e6}.bd-content>table>tbody>tr>td>p:last-child,.bd-content>table>tbody>tr>th>p:last-child,.bd-content>table>tfoot>tr>td>p:last-child,.bd-content>table>tfoot>tr>th>p:last-child,.bd-content>table>thead>tr>td>p:last-child,.bd-content>table>thead>tr>th>p:last-child{margin-bottom:0}.bd-content>table td:first-child>code{white-space:nowrap}.bd-content-title{display:block;pointer-events:auto}.bd-content>h2{font-size:2rem}@media (max-width:1200px){.bd-content>h2{font-size:calc(1.325rem + .9vw)}}.bd-content>h3{font-size:1.75rem}@media (max-width:1200px){.bd-content>h3{font-size:calc(1.3rem + .6vw)}}.bd-content>h4{font-size:1.5rem}@media (max-width:1200px){.bd-content>h4{font-size:calc(1.275rem + .3vw)}}.bd-content>h2:not(:first-child){margin-top:3rem}.bd-content>h3{margin-top:1.5rem}.bd-content>ol li,.bd-content>ul li{margin-bottom:.25rem}@media (min-width:992px){.bd-content>ol,.bd-content>p,.bd-content>ul{max-width:80%}}.bd-title{margin-top:1rem;margin-bottom:.5rem;font-weight:300;font-size:3rem}@media (max-width:1200px){.bd-title{font-size:calc(1.425rem + 2.1vw)}}.bd-lead{font-size:1.5rem;font-weight:300}@media (max-width:1200px){.bd-lead{font-size:calc(1.275rem + .3vw)}}@media (min-width:992px){.bd-lead{max-width:80%}}.bd-text-purple{color:#563d7c}.bd-text-purple-bright{color:#7952b3}.skippy{display:block;padding:1em;color:#fff;text-align:center;background-color:#563d7c;outline:0}.skippy:hover{color:#fff}.skippy-text{padding:.5em;outline:1px dotted}.bd-toc{order:2;padding-top:1.5rem;padding-bottom:1.5rem;font-size:.875rem}@supports ((position:-webkit-sticky) or (position:sticky)){.bd-toc{position:-webkit-sticky;position:sticky;top:4rem;height:calc(100vh - 4rem);overflow-y:auto}}.bd-toc nav{padding-left:0;border-left:1px solid #eee}.bd-toc nav>ul,.bd-toc nav>ul>li>ul{padding:0}.bd-toc nav a code{font:inherit}.bd-toc nav li{display:block}.bd-toc nav li ul li ul{padding-left:1rem}.bd-toc nav li a{display:block;padding:.125rem 1.5rem;color:#77757a}.bd-toc nav li a:hover{color:#007bff;text-decoration:none}.bd-sidebar{order:0;border-bottom:1px solid rgba(0,0,0,.1)}@media (min-width:768px){.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:4rem;z-index:1000;height:calc(100vh - 4rem)}}}@media (min-width:1200px){.bd-sidebar{flex:0 1 320px}}.bd-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.bd-links{max-height:calc(100vh - 9rem);overflow-y:auto}}}@media (min-width:768px){.bd-links{display:block!important}}.bd-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px;border-bottom:1px solid rgba(0,0,0,.05)}.bd-search .form-control:focus{border-color:#7952b3;box-shadow:0 0 0 3px rgba(121,82,179,.25)}.bd-search-docs-toggle{line-height:1;color:#212529}.bd-sidenav{display:none}.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}.bd-sidebar .nav>li>a{display:block;padding:.25rem 1.5rem;font-size:90%;color:rgba(0,0,0,.65)}.bd-sidebar .nav>li>a:hover{color:rgba(0,0,0,.85);text-decoration:none;background-color:transparent}.bd-sidebar .nav>.active:hover>a,.bd-sidebar .nav>.active>a{font-weight:600;color:rgba(0,0,0,.85);background-color:transparent}.bd-footer{font-size:.875rem;text-align:center;background-color:#f7f7f7}.bd-footer a{font-weight:600;color:#495057}.bd-footer a:focus,.bd-footer a:hover{color:#007bff}.bd-footer p{margin-bottom:0}@media (min-width:576px){.bd-footer{text-align:left}}.bd-footer-links{padding-left:0;margin-bottom:1rem}.bd-footer-links li{display:inline-block}.bd-footer-links li+li{margin-left:1rem}.bd-example-row .row>.col,.bd-example-row .row>[class^=col-]{padding-top:.75rem;padding-bottom:.75rem;background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.2)}.bd-example-row .row+.row{margin-top:1rem}.bd-example-row .flex-items-bottom,.bd-example-row .flex-items-middle,.bd-example-row .flex-items-top{min-height:6rem;background-color:rgba(255,0,0,.1)}.bd-example-row-flex-cols .row{min-height:10rem;background-color:rgba(255,0,0,.1)}.bd-highlight{background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.15)}.example-container{width:800px;width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.example-row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.example-content-main{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-main{flex:0 0 50%;max-width:50%}}@media (min-width:992px){.example-content-main{flex:0 0 66.666667%;max-width:66.666667%}}.example-content-secondary{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-secondary{flex:0 0 50%;max-width:50%}}@media (min-width:992px){.example-content-secondary{flex:0 0 33.333333%;max-width:33.333333%}}.bd-example-container{min-width:16rem;max-width:25rem;margin-right:auto;margin-left:auto}.bd-example-container-header{height:3rem;margin-bottom:.5rem;background-color:#fff;border-radius:.25rem}.bd-example-container-sidebar{float:right;width:4rem;height:8rem;background-color:#80bdff;border-radius:.25rem}.bd-example-container-body{height:8rem;margin-right:4.5rem;background-color:#957bbe;border-radius:.25rem}.bd-example-container-fluid{max-width:none}.bd-example{position:relative;padding:1rem;margin:1rem -15px 0;border:solid #f8f9fa;border-width:.2rem 0 0}.bd-example::after{display:block;clear:both;content:""}@media (min-width:576px){.bd-example{padding:1.5rem;margin-right:0;margin-left:0;border-width:.2rem}}.bd-example+.clipboard+.highlight,.bd-example+.highlight{margin-top:0}.bd-example+p{margin-top:2rem}.bd-example .pos-f-t{position:relative;margin:-1rem}@media (min-width:576px){.bd-example .pos-f-t{margin:-1.5rem}}.bd-example .custom-file-input:lang(es)~.custom-file-label::after{content:"Elegir"}.bd-example>.form-control+.form-control{margin-top:.5rem}.bd-example>.alert+.alert,.bd-example>.nav+.nav,.bd-example>.navbar+.navbar,.bd-example>.progress+.btn,.bd-example>.progress+.progress{margin-top:1rem}.bd-example>.dropdown-menu:first-child{position:static;display:block}.bd-example>.form-group:last-child{margin-bottom:0}.bd-example>.close{float:none}.bd-example-type .table td{padding:1rem 0;border-color:#eee}.bd-example-type .table tr:first-child td{border-top:0}.bd-example-type h1,.bd-example-type h2,.bd-example-type h3,.bd-example-type h4,.bd-example-type h5,.bd-example-type h6{margin-top:0;margin-bottom:0}.bd-example-bg-classes p{padding:1rem}.bd-example>img+img,.bd-example>svg+svg{margin-left:.5rem}.bd-example>.btn,.bd-example>.btn-group{margin-top:.25rem;margin-bottom:.25rem}.bd-example>.btn-toolbar+.btn-toolbar{margin-top:.5rem}.bd-example-control-sizing input[type=text]+input[type=text],.bd-example-control-sizing select{margin-top:.5rem}.bd-example-form .input-group{margin-bottom:.5rem}.bd-example>textarea.form-control{resize:vertical}.bd-example>.list-group{max-width:400px}.bd-example>[class*=list-group-horizontal]{max-width:100%}.bd-example .fixed-top,.bd-example .sticky-top{position:static;margin:-1rem -1rem 1rem}.bd-example .fixed-bottom{position:static;margin:1rem -1rem -1rem}@media (min-width:576px){.bd-example .fixed-top,.bd-example .sticky-top{margin:-1.5rem -1.5rem 1rem}.bd-example .fixed-bottom{margin:1rem -1.5rem -1.5rem}}.bd-example .pagination{margin-top:.5rem;margin-bottom:.5rem}.modal{z-index:1072}.modal .popover,.modal .tooltip{z-index:1073}.modal-backdrop{z-index:1071}.bd-example-modal{background-color:#fafafa}.bd-example-modal .modal{position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:1;display:block}.bd-example-modal .modal-dialog{left:auto;margin-right:auto;margin-left:auto}.bd-example-tabs .nav-tabs{margin-bottom:1rem}.bd-example-popover-static{padding-bottom:1.5rem;background-color:#f9f9f9}.bd-example-popover-static .popover{position:relative;display:block;float:left;width:260px;margin:1.25rem}.tooltip-demo a{white-space:nowrap}.bd-example-tooltip-static .tooltip{position:relative;display:inline-block;margin:10px 20px;opacity:1}.scrollspy-example{position:relative;height:200px;margin-top:.5rem;overflow:auto}.scrollspy-example-2{position:relative;height:350px;overflow:auto}.bd-example-border-utils [class^=border]{display:inline-block;width:5rem;height:5rem;margin:.25rem;background-color:#f5f5f5}.bd-example-border-utils-0 [class^=border]{border:1px solid #dee2e6}.highlight{padding:1rem;margin-top:1rem;margin-bottom:1rem;background-color:#f8f9fa;-ms-overflow-style:-ms-autohiding-scrollbar}@media (min-width:576px){.highlight{padding:1.5rem}}.bd-content .highlight{margin-right:-15px;margin-left:-15px}@media (min-width:576px){.bd-content .highlight{margin-right:0;margin-left:0}}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0}.highlight pre code{font-size:inherit;color:#212529}.btn-bd-primary{font-weight:600;color:#7952b3;border-color:#7952b3}.btn-bd-primary:active,.btn-bd-primary:hover{color:#fff;background-color:#7952b3;border-color:#7952b3}.btn-bd-primary:focus{box-shadow:0 0 0 3px rgba(121,82,179,.25)}.btn-bd-download{font-weight:600;color:#ffe484;border-color:#ffe484}.btn-bd-download:active,.btn-bd-download:hover{color:#2a2730;background-color:#ffe484;border-color:#ffe484}.btn-bd-download:focus{box-shadow:0 0 0 3px rgba(255,228,132,.25)}.bd-callout{padding:1.25rem;margin-top:1.25rem;margin-bottom:1.25rem;border:1px solid #eee;border-left-width:.25rem;border-radius:.25rem}.bd-callout h4{margin-top:0;margin-bottom:.25rem}.bd-callout p:last-child{margin-bottom:0}.bd-callout code{border-radius:.25rem}.bd-callout+.bd-callout{margin-top:-.25rem}.bd-callout-info{border-left-color:#5bc0de}.bd-callout-info h4{color:#5bc0de}.bd-callout-warning{border-left-color:#f0ad4e}.bd-callout-warning h4{color:#f0ad4e}.bd-callout-danger{border-left-color:#d9534f}.bd-callout-danger h4{color:#d9534f}.bd-browser-bugs th:first-child{width:18%}.bd-brand-logos{display:table;width:100%;margin-bottom:1rem;overflow:hidden;color:#563d7c;background-color:#f9f9f9;border-radius:.25rem}.bd-brand-logos .inverse{color:#fff;background-color:#563d7c}.bd-brand-item{padding:4rem 0;text-align:center}.bd-brand-item+.bd-brand-item{border-top:1px solid #fff}.bd-brand-item h1,.bd-brand-item h3{margin-top:0;margin-bottom:0}@media (min-width:768px){.bd-brand-item{display:table-cell;width:1%}.bd-brand-item+.bd-brand-item{border-top:0;border-left:1px solid #fff}.bd-brand-item h1{font-size:4rem}}@media (min-width:768px) and (max-width:1200px){.bd-brand-item h1{font-size:calc(1.525rem + 3.3vw)}}.color-swatches{margin:0 -5px;overflow:hidden}.color-swatches .bd-purple{background-color:#563d7c}.color-swatches .bd-purple-light{background-color:#cbbde2}.color-swatches .bd-purple-lighter{background-color:#e5e1ea}.color-swatches .bd-gray{background-color:#f9f9f9}.color-swatch{float:left;width:4rem;height:4rem;margin-right:.25rem;margin-left:.25rem;border-radius:.25rem}@media (min-width:768px){.color-swatch{width:6rem;height:6rem}}.swatch-blue{color:#fff;background-color:#007bff}.swatch-indigo{color:#fff;background-color:#6610f2}.swatch-purple{color:#fff;background-color:#6f42c1}.swatch-pink{color:#fff;background-color:#e83e8c}.swatch-red{color:#fff;background-color:#dc3545}.swatch-orange{color:#212529;background-color:#fd7e14}.swatch-yellow{color:#212529;background-color:#ffc107}.swatch-green{color:#fff;background-color:#28a745}.swatch-teal{color:#fff;background-color:#20c997}.swatch-cyan{color:#fff;background-color:#17a2b8}.swatch-white{color:#212529;background-color:#fff}.swatch-gray{color:#fff;background-color:#6c757d}.swatch-gray-dark{color:#fff;background-color:#343a40}.swatch-primary{color:#fff;background-color:#007bff}.swatch-secondary{color:#fff;background-color:#6c757d}.swatch-success{color:#fff;background-color:#28a745}.swatch-info{color:#fff;background-color:#17a2b8}.swatch-warning{color:#212529;background-color:#ffc107}.swatch-danger{color:#fff;background-color:#dc3545}.swatch-light{color:#212529;background-color:#f8f9fa}.swatch-dark{color:#fff;background-color:#343a40}.swatch-100{color:#212529;background-color:#f8f9fa}.swatch-200{color:#212529;background-color:#e9ecef}.swatch-300{color:#212529;background-color:#dee2e6}.swatch-400{color:#212529;background-color:#ced4da}.swatch-500{color:#212529;background-color:#adb5bd}.swatch-600{color:#fff;background-color:#6c757d}.swatch-700{color:#fff;background-color:#495057}.swatch-800{color:#fff;background-color:#343a40}.swatch-900{color:#fff;background-color:#212529}.bd-clipboard{position:relative;display:none;float:right}.bd-clipboard+.highlight{margin-top:0}@media (min-width:768px){.bd-clipboard{display:block}}.btn-clipboard{position:absolute;top:.5rem;right:.5rem;z-index:10;display:block;padding:.25rem .5rem;font-size:75%;color:#818a91;background-color:transparent;border:0;border-radius:.25rem}.btn-clipboard:hover{color:#fff;background-color:#027de7}.bd-placeholder-img{font-size:1.125rem;text-anchor:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bd-placeholder-img-lg{font-size:3.5rem}@media (max-width:1200px){.bd-placeholder-img-lg{font-size:calc(1.475rem + 2.7vw)}}.chroma .dl{color:#4070a0}.chroma .c{color:#999}.chroma .c1{color:#999}.chroma .ch{font-style:italic;color:#60a0b0}.chroma .cm{color:#999}.chroma .cp{color:#099}.chroma .cpf{color:#007020}.chroma .cs{color:#999}.chroma .gd{background-color:#fcc;border:1px solid #c00}.chroma .ge{font-style:italic}.chroma .gh{color:#030}.chroma .gi{background-color:#cfc;border:1px solid #0c0}.chroma .gl{text-decoration:underline}.chroma .go{color:#aaa}.chroma .gp{color:#009}.chroma .gr{color:red}.chroma .gs{font-weight:700}.chroma .gt{color:#9c6}.chroma .gu{color:#030}.chroma .il{color:#f60}.chroma .k{color:#069}.chroma .kc{color:#069}.chroma .kd{color:#069}.chroma .kn{color:#069}.chroma .kp{color:#069}.chroma .kr{color:#069}.chroma .kt{color:#078}.chroma .m{color:#f60}.chroma .mf{color:#f60}.chroma .mb{color:#40a070}.chroma .mh{color:#f60}.chroma .mi{color:#f60}.chroma .mo{color:#f60}.chroma .na{color:#4f9fcf}.chroma .nb{color:#366}.chroma .nc{color:#0a8}.chroma .nd{color:#99f}.chroma .ne{color:#c00}.chroma .nf{color:#c0f}.chroma .ni{color:#999}.chroma .nl{color:#99f}.chroma .nn{color:#0cf}.chroma .no{color:#360}.chroma .nt{color:#2f6f9f}.chroma .nv{color:#033}.chroma .o{color:#555}.chroma .ow{color:#000}.chroma .s{color:#d44950}.chroma .s1{color:#c30}.chroma .s2{color:#c30}.chroma .sa{color:#4070a0}.chroma .sb{color:#c30}.chroma .sc{color:#c30}.chroma .sd{font-style:italic;color:#c30}.chroma .se{color:#c30}.chroma .sh{color:#c30}.chroma .si{color:#a00}.chroma .sr{color:#3aa}.chroma .ss{color:#fc3}.chroma .sx{color:#c30}.chroma .w{color:#bbb}.chroma .language-bash::before,.chroma .language-sh::before{color:#009;content:"$ ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.chroma .language-bash .m,.chroma .language-sh .m{color:inherit}.chroma .language-powershell::before{color:#009;content:"PM> ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.anchorjs-link{font-weight:400;color:rgba(0,123,255,.5);transition:color .15s ease-in-out,opacity .15s ease-in-out}@media (prefers-reduced-motion:reduce){.anchorjs-link{transition:none}}.anchorjs-link:hover{color:#007bff;text-decoration:none}.algolia-autocomplete{display:block!important;flex:1}.algolia-autocomplete .ds-dropdown-menu{width:100%;min-width:0!important;max-width:none!important;padding:.75rem 0!important;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.175)}@media (min-width:768px){.algolia-autocomplete .ds-dropdown-menu{width:175%}}.algolia-autocomplete .ds-dropdown-menu::before{display:none!important}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{padding:0!important;overflow:visible!important;background-color:transparent!important;border:0!important}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{margin-top:0!important}.algolia-autocomplete .algolia-docsearch-suggestion{padding:0!important;overflow:visible!important}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{padding:.125rem 1rem!important;margin-top:0!important;font-size:.875rem!important;font-weight:600!important;color:#7952b3!important;border-bottom:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{float:none!important;padding-top:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:none!important;width:auto!important;padding:0!important;text-align:left!important}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:block!important;font-size:.875rem;color:#495057}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline::after{padding:0 .25rem;content:"/"}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:flex;flex-wrap:wrap;float:none!important;width:100%!important;padding:.25rem 1rem!important}.algolia-autocomplete .algolia-docsearch-suggestion--content::before{display:none!important}.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header{padding-top:.75rem!important;margin-top:.75rem!important;border-top:1px solid rgba(0,0,0,.1)}.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column{display:none!important}.algolia-autocomplete .algolia-docsearch-suggestion--title{display:block;margin-bottom:0!important;font-size:.875rem!important;font-weight:400!important}.algolia-autocomplete .algolia-docsearch-suggestion--text{flex:0 0 100%;max-width:100%;padding:.2rem 0;font-size:.8125rem!important;font-weight:400;line-height:1.25!important;color:#6c757d}.algolia-autocomplete .algolia-docsearch-footer{float:none!important;width:auto!important;height:auto!important;padding:.75rem 1rem 0;font-size:.75rem!important;line-height:1!important;color:#767676!important;border-top:1px solid rgba(0,0,0,.1)}.algolia-autocomplete .algolia-docsearch-footer--logo{display:inline!important;overflow:visible!important;color:inherit!important;text-indent:0!important;background:0 0!important}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#5f2dab;background-color:rgba(154,132,187,.12)}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:inset 0 -2px 0 0 rgba(95,45,171,.5)!important}.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content{background-color:rgba(208,189,236,.15)!important} /*# sourceMappingURL=docs.min.css.map */
\ No newline at end of file diff --git a/site/static/docs/4.3/assets/css/docs.min.css.map b/site/static/docs/4.3/assets/css/docs.min.css.map index 02019a2329..3d23084535 100644 --- a/site/static/docs/4.3/assets/css/docs.min.css.map +++ b/site/static/docs/4.3/assets/css/docs.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../scss/docs.scss","../scss/_nav.scss","../../../../../scss/mixins/_breakpoints.scss","../../../../../scss/vendor/_rfs.scss","../scss/_masthead.scss","../scss/_ads.scss","../../../../../scss/mixins/_border-radius.scss","../scss/_content.scss","site/docs/4.3/assets/css/docs.min.css","../scss/_skippy.scss","../../../../../scss/mixins/_hover.scss","../scss/_sidebar.scss","../scss/_footer.scss","../scss/_component-examples.scss","../../../../../scss/mixins/_grid.scss","../../../../../scss/mixins/_clearfix.scss","../scss/_buttons.scss","../scss/_callouts.scss","../scss/_browser-bugs.scss","../scss/_brand.scss","../scss/_colors.scss","../scss/_clipboard-js.scss","../scss/_placeholder-img.scss","../scss/_syntax.scss","../scss/_anchor.scss","../../../../../scss/mixins/_transition.scss","../scss/_algolia.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Docs (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under the Creative Commons Attribution 3.0 Unported License.\n * For details, see https://creativecommons.org/licenses/by/3.0/.\n */\n\n// Dev notes\n//\n// Background information on nomenclature and architecture decisions here.\n//\n// - Bootstrap functions, variables, and mixins are included for easy reuse.\n// Doing so gives us access to the same core utilities provided by Bootstrap.\n// For example, consistent media queries through those mixins.\n//\n// - Bootstrap's **docs variables** are prefixed with `$bd-`.\n// These custom colors avoid collision with the components Bootstrap provides.\n//\n// - Classes are prefixed with `.bd-`.\n// These classes indicate custom-built or modified components for the design\n// and layout of the Bootstrap docs. They are not included in our builds.\n//\n// Happy Bootstrapping!\n\n// Load Bootstrap variables and mixins\n@import \"../../../../../scss/functions\";\n@import \"../../../../../scss/variables\";\n@import \"../../../../../scss/mixins\";\n\n// Load docs components\n@import \"variables\";\n@import \"nav\";\n@import \"masthead\";\n@import \"ads\";\n@import \"content\";\n@import \"skippy\";\n@import \"sidebar\";\n@import \"footer\";\n@import \"component-examples\";\n@import \"buttons\";\n@import \"callouts\";\n@import \"browser-bugs\";\n@import \"brand\";\n@import \"colors\";\n@import \"clipboard-js\";\n@import \"placeholder-img\";\n\n// Load docs dependencies\n@import \"syntax\";\n@import \"anchor\";\n@import \"algolia\";\n","//\n// Main navbar\n//\n\n.bd-navbar {\n min-height: 4rem;\n background-color: $bd-purple;\n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .05), inset 0 -1px 0 rgba(0, 0, 0, .1);\n\n @include media-breakpoint-down(md) {\n padding-right: .5rem;\n padding-left: .5rem;\n\n .navbar-nav-scroll {\n max-width: 100%;\n height: 2.5rem;\n margin-top: .25rem;\n overflow: hidden;\n\n .navbar-nav {\n padding-bottom: 2rem;\n overflow-x: auto;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n }\n }\n }\n\n @include media-breakpoint-up(md) {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: 1071; // over everything in bootstrap\n }\n }\n\n .navbar-nav {\n .nav-link {\n padding-right: .5rem;\n padding-left: .5rem;\n color: $bd-purple-light;\n\n &.active,\n &:hover {\n color: $white;\n background-color: transparent;\n }\n\n &.active {\n font-weight: 600;\n }\n }\n }\n\n .navbar-nav-svg {\n display: inline-block;\n width: 1rem;\n height: 1rem;\n vertical-align: text-top;\n }\n\n .dropdown-menu {\n @include font-size(.875rem);\n }\n\n .dropdown-item.active {\n font-weight: 600;\n color: $gray-900;\n background-color: transparent;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' 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\");\n background-repeat: no-repeat;\n background-position: .4rem .6rem;\n background-size: .75rem .75rem;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// stylelint-disable declaration-no-important\n\n.bd-masthead {\n position: relative;\n padding: 3rem ($grid-gutter-width / 2);\n // background-image: linear-gradient(45deg, #fafafa, #f5f5f5);\n\n h1 {\n @include font-size(4rem);\n line-height: 1;\n }\n\n .btn {\n padding: .8rem 2rem;\n font-weight: 600;\n @include font-size(1.25rem);\n }\n\n .carbonad {\n margin-top: 0 !important;\n margin-bottom: -3rem !important;\n }\n\n @include media-breakpoint-up(sm) {\n padding-top: 5rem;\n padding-bottom: 5rem;\n\n .carbonad {\n margin-bottom: 0 !important;\n }\n }\n\n @include media-breakpoint-up(md) {\n .carbonad {\n margin-top: 3rem !important;\n }\n }\n}\n\n.half-rule {\n width: 6rem;\n margin: 2.5rem 0;\n}\n\n.masthead-followup {\n .bd-clipboard { display: none; }\n\n .highlight {\n padding: .5rem 0;\n background-color: transparent;\n }\n}\n","// stylelint-disable declaration-no-important, selector-max-id\n\n//\n// Carbon ads\n//\n\n#carbonads {\n position: static;\n display: block;\n max-width: 400px;\n padding: 15px 15px 15px 160px;\n margin: 2rem 0;\n overflow: hidden;\n @include font-size(.8125rem);\n line-height: 1.4;\n text-align: left;\n background-color: rgba(0, 0, 0, .05);\n\n a {\n color: #333;\n text-decoration: none;\n }\n\n @include media-breakpoint-up(sm) {\n max-width: 330px;\n @include border-radius(4px);\n }\n}\n\n.carbon-img {\n float: left;\n margin-left: -145px;\n}\n\n.carbon-poweredby {\n display: block;\n color: #777 !important;\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// stylelint-disable no-duplicate-selectors, selector-max-combinators, selector-max-compound-selectors, selector-max-type, selector-no-qualifying-type\n\n//\n// Automatically style Markdown-based tables like a Bootstrap `.table`.\n//\n\n.bd-content {\n order: 1;\n\n // Hack the sticky header\n > h2[id],\n > h3[id],\n > h4[id] {\n pointer-events: none;\n\n &::before {\n display: block;\n height: 6rem;\n margin-top: -6rem;\n content: \"\";\n }\n }\n\n > table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n\n @include media-breakpoint-down(md) {\n display: block;\n overflow-x: auto;\n\n &.table-bordered {\n border: 0;\n }\n }\n\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: $table-cell-padding;\n vertical-align: top;\n border: 1px solid $table-border-color;\n\n > p:last-child {\n margin-bottom: 0;\n }\n }\n }\n }\n\n // Prevent breaking of code (e.g., Grunt tasks list)\n td:first-child > code {\n white-space: nowrap;\n }\n }\n}\n\n.bd-content-title {\n display: block;\n pointer-events: auto;\n}\n\n//\n// Docs sections\n//\n\n.bd-content {\n > h2 {\n @include font-size($h2-font-size);\n }\n\n > h3 {\n @include font-size($h3-font-size);\n }\n\n > h4 {\n @include font-size($h4-font-size);\n }\n\n > h2:not(:first-child) {\n margin-top: 3rem;\n }\n\n > h3 {\n margin-top: 1.5rem;\n }\n\n > ul li,\n > ol li {\n margin-bottom: .25rem;\n }\n\n @include media-breakpoint-up(lg) {\n > ul,\n > ol,\n > p {\n max-width: 80%;\n }\n }\n}\n\n.bd-title {\n margin-top: 1rem;\n margin-bottom: .5rem;\n font-weight: 300;\n @include font-size(3rem);\n}\n\n.bd-lead {\n @include font-size(1.5rem);\n font-weight: 300;\n\n @include media-breakpoint-up(lg) {\n max-width: 80%;\n }\n}\n\n.bd-text-purple { color: $bd-purple; }\n.bd-text-purple-bright { color: $bd-purple-bright; }\n","/*!\n * Bootstrap Docs (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under the Creative Commons Attribution 3.0 Unported License.\n * For details, see https://creativecommons.org/licenses/by/3.0/.\n */\n.bd-navbar {\n min-height: 4rem;\n background-color: #563d7c;\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.05), inset 0 -1px 0 rgba(0, 0, 0, 0.1);\n}\n\n@media (max-width: 991.98px) {\n .bd-navbar {\n padding-right: .5rem;\n padding-left: .5rem;\n }\n .bd-navbar .navbar-nav-scroll {\n max-width: 100%;\n height: 2.5rem;\n margin-top: .25rem;\n overflow: hidden;\n }\n .bd-navbar .navbar-nav-scroll .navbar-nav {\n padding-bottom: 2rem;\n overflow-x: auto;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n }\n}\n\n@media (min-width: 768px) {\n @supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-navbar {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1071;\n }\n }\n}\n\n.bd-navbar .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem;\n color: #cbbde2;\n}\n\n.bd-navbar .navbar-nav .nav-link.active, .bd-navbar .navbar-nav .nav-link:hover {\n color: #fff;\n background-color: transparent;\n}\n\n.bd-navbar .navbar-nav .nav-link.active {\n font-weight: 600;\n}\n\n.bd-navbar .navbar-nav-svg {\n display: inline-block;\n width: 1rem;\n height: 1rem;\n vertical-align: text-top;\n}\n\n.bd-navbar .dropdown-menu {\n font-size: 0.875rem;\n}\n\n.bd-navbar .dropdown-item.active {\n font-weight: 600;\n color: #212529;\n background-color: transparent;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' 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\");\n background-repeat: no-repeat;\n background-position: .4rem .6rem;\n background-size: .75rem .75rem;\n}\n\n.bd-masthead {\n position: relative;\n padding: 3rem 15px;\n}\n\n.bd-masthead h1 {\n font-size: 4rem;\n line-height: 1;\n}\n\n@media (max-width: 1200px) {\n .bd-masthead h1 {\n font-size: calc(1.525rem + 3.3vw) ;\n }\n}\n\n.bd-masthead .btn {\n padding: .8rem 2rem;\n font-weight: 600;\n font-size: 1.25rem;\n}\n\n.bd-masthead .carbonad {\n margin-top: 0 !important;\n margin-bottom: -3rem !important;\n}\n\n@media (min-width: 576px) {\n .bd-masthead {\n padding-top: 5rem;\n padding-bottom: 5rem;\n }\n .bd-masthead .carbonad {\n margin-bottom: 0 !important;\n }\n}\n\n@media (min-width: 768px) {\n .bd-masthead .carbonad {\n margin-top: 3rem !important;\n }\n}\n\n.half-rule {\n width: 6rem;\n margin: 2.5rem 0;\n}\n\n.masthead-followup .bd-clipboard {\n display: none;\n}\n\n.masthead-followup .highlight {\n padding: .5rem 0;\n background-color: transparent;\n}\n\n#carbonads {\n position: static;\n display: block;\n max-width: 400px;\n padding: 15px 15px 15px 160px;\n margin: 2rem 0;\n overflow: hidden;\n font-size: 0.8125rem;\n line-height: 1.4;\n text-align: left;\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n#carbonads a {\n color: #333;\n text-decoration: none;\n}\n\n@media (min-width: 576px) {\n #carbonads {\n max-width: 330px;\n border-radius: 4px;\n }\n}\n\n.carbon-img {\n float: left;\n margin-left: -145px;\n}\n\n.carbon-poweredby {\n display: block;\n color: #777 !important;\n}\n\n.bd-content {\n order: 1;\n}\n\n.bd-content > h2[id],\n.bd-content > h3[id],\n.bd-content > h4[id] {\n pointer-events: none;\n}\n\n.bd-content > h2[id]::before,\n.bd-content > h3[id]::before,\n.bd-content > h4[id]::before {\n display: block;\n height: 6rem;\n margin-top: -6rem;\n content: \"\";\n}\n\n.bd-content > table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n}\n\n@media (max-width: 991.98px) {\n .bd-content > table {\n display: block;\n overflow-x: auto;\n }\n .bd-content > table.table-bordered {\n border: 0;\n }\n}\n\n.bd-content > table > thead > tr > th,\n.bd-content > table > thead > tr > td,\n.bd-content > table > tbody > tr > th,\n.bd-content > table > tbody > tr > td,\n.bd-content > table > tfoot > tr > th,\n.bd-content > table > tfoot > tr > td {\n padding: 0.75rem;\n vertical-align: top;\n border: 1px solid #dee2e6;\n}\n\n.bd-content > table > thead > tr > th > p:last-child,\n.bd-content > table > thead > tr > td > p:last-child,\n.bd-content > table > tbody > tr > th > p:last-child,\n.bd-content > table > tbody > tr > td > p:last-child,\n.bd-content > table > tfoot > tr > th > p:last-child,\n.bd-content > table > tfoot > tr > td > p:last-child {\n margin-bottom: 0;\n}\n\n.bd-content > table td:first-child > code {\n white-space: nowrap;\n}\n\n.bd-content-title {\n display: block;\n pointer-events: auto;\n}\n\n.bd-content > h2 {\n font-size: 2rem;\n}\n\n@media (max-width: 1200px) {\n .bd-content > h2 {\n font-size: calc(1.325rem + 0.9vw) ;\n }\n}\n\n.bd-content > h3 {\n font-size: 1.75rem;\n}\n\n@media (max-width: 1200px) {\n .bd-content > h3 {\n font-size: calc(1.3rem + 0.6vw) ;\n }\n}\n\n.bd-content > h4 {\n font-size: 1.5rem;\n}\n\n@media (max-width: 1200px) {\n .bd-content > h4 {\n font-size: calc(1.275rem + 0.3vw) ;\n }\n}\n\n.bd-content > h2:not(:first-child) {\n margin-top: 3rem;\n}\n\n.bd-content > h3 {\n margin-top: 1.5rem;\n}\n\n.bd-content > ul li,\n.bd-content > ol li {\n margin-bottom: .25rem;\n}\n\n@media (min-width: 992px) {\n .bd-content > ul,\n .bd-content > ol,\n .bd-content > p {\n max-width: 80%;\n }\n}\n\n.bd-title {\n margin-top: 1rem;\n margin-bottom: .5rem;\n font-weight: 300;\n font-size: 3rem;\n}\n\n@media (max-width: 1200px) {\n .bd-title {\n font-size: calc(1.425rem + 2.1vw) ;\n }\n}\n\n.bd-lead {\n font-size: 1.5rem;\n font-weight: 300;\n}\n\n@media (max-width: 1200px) {\n .bd-lead {\n font-size: calc(1.275rem + 0.3vw) ;\n }\n}\n\n@media (min-width: 992px) {\n .bd-lead {\n max-width: 80%;\n }\n}\n\n.bd-text-purple {\n color: #563d7c;\n}\n\n.bd-text-purple-bright {\n color: #7952b3;\n}\n\n.skippy {\n display: block;\n padding: 1em;\n color: #fff;\n text-align: center;\n background-color: #563d7c;\n outline: 0;\n}\n\n.skippy:hover {\n color: #fff;\n}\n\n.skippy-text {\n padding: .5em;\n outline: 1px dotted;\n}\n\n.bd-toc {\n order: 2;\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n font-size: 0.875rem;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-toc {\n position: -webkit-sticky;\n position: sticky;\n top: 4rem;\n height: calc(100vh - 4rem);\n overflow-y: auto;\n }\n}\n\n.section-nav {\n padding-left: 0;\n border-left: 1px solid #eee;\n}\n\n.section-nav ul {\n padding-left: 1rem;\n}\n\n.toc-entry {\n display: block;\n}\n\n.toc-entry a {\n display: block;\n padding: .125rem 1.5rem;\n color: #77757a;\n}\n\n.toc-entry a:hover {\n color: #007bff;\n text-decoration: none;\n}\n\n.bd-sidebar {\n order: 0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n@media (min-width: 768px) {\n .bd-sidebar {\n border-right: 1px solid rgba(0, 0, 0, 0.1);\n }\n @supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-sidebar {\n position: -webkit-sticky;\n position: sticky;\n top: 4rem;\n z-index: 1000;\n height: calc(100vh - 4rem);\n }\n }\n}\n\n@media (min-width: 1200px) {\n .bd-sidebar {\n flex: 0 1 320px;\n }\n}\n\n.bd-links {\n padding-top: 1rem;\n padding-bottom: 1rem;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n@media (min-width: 768px) {\n @supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-links {\n max-height: calc(100vh - 9rem);\n overflow-y: auto;\n }\n }\n}\n\n@media (min-width: 768px) {\n .bd-links {\n display: block !important;\n }\n}\n\n.bd-search {\n position: relative;\n padding: 1rem 15px;\n margin-right: -15px;\n margin-left: -15px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.bd-search .form-control:focus {\n border-color: #7952b3;\n box-shadow: 0 0 0 3px rgba(121, 82, 179, 0.25);\n}\n\n.bd-search-docs-toggle {\n line-height: 1;\n color: #212529;\n}\n\n.bd-sidenav {\n display: none;\n}\n\n.bd-toc-link {\n display: block;\n padding: .25rem 1.5rem;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.65);\n}\n\n.bd-toc-link:hover {\n color: rgba(0, 0, 0, 0.85);\n text-decoration: none;\n}\n\n.bd-toc-item.active {\n margin-bottom: 1rem;\n}\n\n.bd-toc-item.active:not(:first-child) {\n margin-top: 1rem;\n}\n\n.bd-toc-item.active > .bd-toc-link {\n color: rgba(0, 0, 0, 0.85);\n}\n\n.bd-toc-item.active > .bd-toc-link:hover {\n background-color: transparent;\n}\n\n.bd-toc-item.active > .bd-sidenav {\n display: block;\n}\n\n.bd-sidebar .nav > li > a {\n display: block;\n padding: .25rem 1.5rem;\n font-size: 90%;\n color: rgba(0, 0, 0, 0.65);\n}\n\n.bd-sidebar .nav > li > a:hover {\n color: rgba(0, 0, 0, 0.85);\n text-decoration: none;\n background-color: transparent;\n}\n\n.bd-sidebar .nav > .active > a,\n.bd-sidebar .nav > .active:hover > a {\n font-weight: 600;\n color: rgba(0, 0, 0, 0.85);\n background-color: transparent;\n}\n\n.bd-footer {\n font-size: 0.875rem;\n text-align: center;\n background-color: #f7f7f7;\n}\n\n.bd-footer a {\n font-weight: 600;\n color: #495057;\n}\n\n.bd-footer a:hover, .bd-footer a:focus {\n color: #007bff;\n}\n\n.bd-footer p {\n margin-bottom: 0;\n}\n\n@media (min-width: 576px) {\n .bd-footer {\n text-align: left;\n }\n}\n\n.bd-footer-links {\n padding-left: 0;\n margin-bottom: 1rem;\n}\n\n.bd-footer-links li {\n display: inline-block;\n}\n\n.bd-footer-links li + li {\n margin-left: 1rem;\n}\n\n.bd-example-row .row > .col,\n.bd-example-row .row > [class^=\"col-\"] {\n padding-top: .75rem;\n padding-bottom: .75rem;\n background-color: rgba(86, 61, 124, 0.15);\n border: 1px solid rgba(86, 61, 124, 0.2);\n}\n\n.bd-example-row .row + .row {\n margin-top: 1rem;\n}\n\n.bd-example-row .flex-items-top,\n.bd-example-row .flex-items-middle,\n.bd-example-row .flex-items-bottom {\n min-height: 6rem;\n background-color: rgba(255, 0, 0, 0.1);\n}\n\n.bd-example-row-flex-cols .row {\n min-height: 10rem;\n background-color: rgba(255, 0, 0, 0.1);\n}\n\n.bd-highlight {\n background-color: rgba(86, 61, 124, 0.15);\n border: 1px solid rgba(86, 61, 124, 0.15);\n}\n\n.example-container {\n width: 800px;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.example-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.example-content-main {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n .example-content-main {\n flex: 0 0 50%;\n max-width: 50%;\n }\n}\n\n@media (min-width: 992px) {\n .example-content-main {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n}\n\n.example-content-secondary {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n .example-content-secondary {\n flex: 0 0 50%;\n max-width: 50%;\n }\n}\n\n@media (min-width: 992px) {\n .example-content-secondary {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n}\n\n.bd-example-container {\n min-width: 16rem;\n max-width: 25rem;\n margin-right: auto;\n margin-left: auto;\n}\n\n.bd-example-container-header {\n height: 3rem;\n margin-bottom: .5rem;\n background-color: white;\n border-radius: 0.25rem;\n}\n\n.bd-example-container-sidebar {\n float: right;\n width: 4rem;\n height: 8rem;\n background-color: #80bdff;\n border-radius: 0.25rem;\n}\n\n.bd-example-container-body {\n height: 8rem;\n margin-right: 4.5rem;\n background-color: #957bbe;\n border-radius: 0.25rem;\n}\n\n.bd-example-container-fluid {\n max-width: none;\n}\n\n.bd-example {\n position: relative;\n padding: 1rem;\n margin: 1rem -15px 0;\n border: solid #f8f9fa;\n border-width: .2rem 0 0;\n}\n\n.bd-example::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n@media (min-width: 576px) {\n .bd-example {\n padding: 1.5rem;\n margin-right: 0;\n margin-left: 0;\n border-width: .2rem;\n }\n}\n\n.bd-example + .highlight,\n.bd-example + .clipboard + .highlight {\n margin-top: 0;\n}\n\n.bd-example + p {\n margin-top: 2rem;\n}\n\n.bd-example .pos-f-t {\n position: relative;\n margin: -1rem;\n}\n\n@media (min-width: 576px) {\n .bd-example .pos-f-t {\n margin: -1.5rem;\n }\n}\n\n.bd-example .custom-file-input:lang(es) ~ .custom-file-label::after {\n content: \"Elegir\";\n}\n\n.bd-example > .form-control + .form-control {\n margin-top: .5rem;\n}\n\n.bd-example > .nav + .nav,\n.bd-example > .alert + .alert,\n.bd-example > .navbar + .navbar,\n.bd-example > .progress + .progress,\n.bd-example > .progress + .btn {\n margin-top: 1rem;\n}\n\n.bd-example > .dropdown-menu:first-child {\n position: static;\n display: block;\n}\n\n.bd-example > .form-group:last-child {\n margin-bottom: 0;\n}\n\n.bd-example > .close {\n float: none;\n}\n\n.bd-example-type .table td {\n padding: 1rem 0;\n border-color: #eee;\n}\n\n.bd-example-type .table tr:first-child td {\n border-top: 0;\n}\n\n.bd-example-type h1,\n.bd-example-type h2,\n.bd-example-type h3,\n.bd-example-type h4,\n.bd-example-type h5,\n.bd-example-type h6 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.bd-example-bg-classes p {\n padding: 1rem;\n}\n\n.bd-example > svg + svg,\n.bd-example > img + img {\n margin-left: .5rem;\n}\n\n.bd-example > .btn,\n.bd-example > .btn-group {\n margin-top: .25rem;\n margin-bottom: .25rem;\n}\n\n.bd-example > .btn-toolbar + .btn-toolbar {\n margin-top: .5rem;\n}\n\n.bd-example-control-sizing select,\n.bd-example-control-sizing input[type=\"text\"] + input[type=\"text\"] {\n margin-top: .5rem;\n}\n\n.bd-example-form .input-group {\n margin-bottom: .5rem;\n}\n\n.bd-example > textarea.form-control {\n resize: vertical;\n}\n\n.bd-example > .list-group {\n max-width: 400px;\n}\n\n.bd-example > [class*=\"list-group-horizontal\"] {\n max-width: 100%;\n}\n\n.bd-example .fixed-top,\n.bd-example .sticky-top {\n position: static;\n margin: -1rem -1rem 1rem;\n}\n\n.bd-example .fixed-bottom {\n position: static;\n margin: 1rem -1rem -1rem;\n}\n\n@media (min-width: 576px) {\n .bd-example .fixed-top,\n .bd-example .sticky-top {\n margin: -1.5rem -1.5rem 1rem;\n }\n .bd-example .fixed-bottom {\n margin: 1rem -1.5rem -1.5rem;\n }\n}\n\n.bd-example .pagination {\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n.modal {\n z-index: 1072;\n}\n\n.modal .tooltip,\n.modal .popover {\n z-index: 1073;\n}\n\n.modal-backdrop {\n z-index: 1071;\n}\n\n.bd-example-modal {\n background-color: #fafafa;\n}\n\n.bd-example-modal .modal {\n position: relative;\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n z-index: 1;\n display: block;\n}\n\n.bd-example-modal .modal-dialog {\n left: auto;\n margin-right: auto;\n margin-left: auto;\n}\n\n.bd-example-tabs .nav-tabs {\n margin-bottom: 1rem;\n}\n\n.bd-example-popover-static {\n padding-bottom: 1.5rem;\n background-color: #f9f9f9;\n}\n\n.bd-example-popover-static .popover {\n position: relative;\n display: block;\n float: left;\n width: 260px;\n margin: 1.25rem;\n}\n\n.tooltip-demo a {\n white-space: nowrap;\n}\n\n.bd-example-tooltip-static .tooltip {\n position: relative;\n display: inline-block;\n margin: 10px 20px;\n opacity: 1;\n}\n\n.scrollspy-example {\n position: relative;\n height: 200px;\n margin-top: .5rem;\n overflow: auto;\n}\n\n.scrollspy-example-2 {\n position: relative;\n height: 350px;\n overflow: auto;\n}\n\n.bd-example-border-utils [class^=\"border\"] {\n display: inline-block;\n width: 5rem;\n height: 5rem;\n margin: .25rem;\n background-color: #f5f5f5;\n}\n\n.bd-example-border-utils-0 [class^=\"border\"] {\n border: 1px solid #dee2e6;\n}\n\n.highlight {\n padding: 1rem;\n margin-top: 1rem;\n margin-bottom: 1rem;\n background-color: #f8f9fa;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n@media (min-width: 576px) {\n .highlight {\n padding: 1.5rem;\n }\n}\n\n.bd-content .highlight {\n margin-right: -15px;\n margin-left: -15px;\n}\n\n@media (min-width: 576px) {\n .bd-content .highlight {\n margin-right: 0;\n margin-left: 0;\n }\n}\n\n.highlight pre {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n background-color: transparent;\n border: 0;\n}\n\n.highlight pre code {\n font-size: inherit;\n color: #212529;\n}\n\n.btn-bd-primary {\n font-weight: 600;\n color: #7952b3;\n border-color: #7952b3;\n}\n\n.btn-bd-primary:hover, .btn-bd-primary:active {\n color: #fff;\n background-color: #7952b3;\n border-color: #7952b3;\n}\n\n.btn-bd-primary:focus {\n box-shadow: 0 0 0 3px rgba(121, 82, 179, 0.25);\n}\n\n.btn-bd-download {\n font-weight: 600;\n color: #ffe484;\n border-color: #ffe484;\n}\n\n.btn-bd-download:hover, .btn-bd-download:active {\n color: #2a2730;\n background-color: #ffe484;\n border-color: #ffe484;\n}\n\n.btn-bd-download:focus {\n box-shadow: 0 0 0 3px rgba(255, 228, 132, 0.25);\n}\n\n.bd-callout {\n padding: 1.25rem;\n margin-top: 1.25rem;\n margin-bottom: 1.25rem;\n border: 1px solid #eee;\n border-left-width: .25rem;\n border-radius: 0.25rem;\n}\n\n.bd-callout h4 {\n margin-top: 0;\n margin-bottom: .25rem;\n}\n\n.bd-callout p:last-child {\n margin-bottom: 0;\n}\n\n.bd-callout code {\n border-radius: 0.25rem;\n}\n\n.bd-callout + .bd-callout {\n margin-top: -.25rem;\n}\n\n.bd-callout-info {\n border-left-color: #5bc0de;\n}\n\n.bd-callout-info h4 {\n color: #5bc0de;\n}\n\n.bd-callout-warning {\n border-left-color: #f0ad4e;\n}\n\n.bd-callout-warning h4 {\n color: #f0ad4e;\n}\n\n.bd-callout-danger {\n border-left-color: #d9534f;\n}\n\n.bd-callout-danger h4 {\n color: #d9534f;\n}\n\n.bd-browser-bugs td p {\n margin-bottom: 0;\n}\n\n.bd-browser-bugs th:first-child {\n width: 18%;\n}\n\n.bd-brand-logos {\n display: table;\n width: 100%;\n margin-bottom: 1rem;\n overflow: hidden;\n color: #563d7c;\n background-color: #f9f9f9;\n border-radius: 0.25rem;\n}\n\n.bd-brand-logos .inverse {\n color: #fff;\n background-color: #563d7c;\n}\n\n.bd-brand-item {\n padding: 4rem 0;\n text-align: center;\n}\n\n.bd-brand-item + .bd-brand-item {\n border-top: 1px solid #fff;\n}\n\n.bd-brand-item h1,\n.bd-brand-item h3 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n@media (min-width: 768px) {\n .bd-brand-item {\n display: table-cell;\n width: 1%;\n }\n .bd-brand-item + .bd-brand-item {\n border-top: 0;\n border-left: 1px solid #fff;\n }\n .bd-brand-item h1 {\n font-size: 4rem;\n }\n}\n\n@media (min-width: 768px) and (max-width: 1200px) {\n .bd-brand-item h1 {\n font-size: calc(1.525rem + 3.3vw) ;\n }\n}\n\n.color-swatches {\n margin: 0 -5px;\n overflow: hidden;\n}\n\n.color-swatches .bd-purple {\n background-color: #563d7c;\n}\n\n.color-swatches .bd-purple-light {\n background-color: #cbbde2;\n}\n\n.color-swatches .bd-purple-lighter {\n background-color: #e5e1ea;\n}\n\n.color-swatches .bd-gray {\n background-color: #f9f9f9;\n}\n\n.color-swatch {\n float: left;\n width: 4rem;\n height: 4rem;\n margin-right: .25rem;\n margin-left: .25rem;\n border-radius: 0.25rem;\n}\n\n@media (min-width: 768px) {\n .color-swatch {\n width: 6rem;\n height: 6rem;\n }\n}\n\n.swatch-blue {\n color: #fff;\n background-color: #007bff;\n}\n\n.swatch-indigo {\n color: #fff;\n background-color: #6610f2;\n}\n\n.swatch-purple {\n color: #fff;\n background-color: #6f42c1;\n}\n\n.swatch-pink {\n color: #fff;\n background-color: #e83e8c;\n}\n\n.swatch-red {\n color: #fff;\n background-color: #dc3545;\n}\n\n.swatch-orange {\n color: #212529;\n background-color: #fd7e14;\n}\n\n.swatch-yellow {\n color: #212529;\n background-color: #ffc107;\n}\n\n.swatch-green {\n color: #fff;\n background-color: #28a745;\n}\n\n.swatch-teal {\n color: #fff;\n background-color: #20c997;\n}\n\n.swatch-cyan {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.swatch-white {\n color: #212529;\n background-color: #fff;\n}\n\n.swatch-gray {\n color: #fff;\n background-color: #6c757d;\n}\n\n.swatch-gray-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.swatch-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.swatch-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\n.swatch-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.swatch-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.swatch-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\n.swatch-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.swatch-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.swatch-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.swatch-100 {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.swatch-200 {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.swatch-300 {\n color: #212529;\n background-color: #dee2e6;\n}\n\n.swatch-400 {\n color: #212529;\n background-color: #ced4da;\n}\n\n.swatch-500 {\n color: #212529;\n background-color: #adb5bd;\n}\n\n.swatch-600 {\n color: #fff;\n background-color: #6c757d;\n}\n\n.swatch-700 {\n color: #fff;\n background-color: #495057;\n}\n\n.swatch-800 {\n color: #fff;\n background-color: #343a40;\n}\n\n.swatch-900 {\n color: #fff;\n background-color: #212529;\n}\n\n.bd-clipboard {\n position: relative;\n display: none;\n float: right;\n}\n\n.bd-clipboard + .highlight {\n margin-top: 0;\n}\n\n@media (min-width: 768px) {\n .bd-clipboard {\n display: block;\n }\n}\n\n.btn-clipboard {\n position: absolute;\n top: .5rem;\n right: .5rem;\n z-index: 10;\n display: block;\n padding: .25rem .5rem;\n font-size: 75%;\n color: #818a91;\n background-color: transparent;\n border: 0;\n border-radius: 0.25rem;\n}\n\n.btn-clipboard:hover {\n color: #fff;\n background-color: #027de7;\n}\n\n.bd-placeholder-img {\n font-size: 1.125rem;\n text-anchor: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.bd-placeholder-img-lg {\n font-size: 3.5rem;\n}\n\n@media (max-width: 1200px) {\n .bd-placeholder-img-lg {\n font-size: calc(1.475rem + 2.7vw) ;\n }\n}\n\n.hll {\n background-color: #ffc;\n}\n\n.c {\n color: #999;\n}\n\n.k {\n color: #069;\n}\n\n.o {\n color: #555;\n}\n\n.cm {\n color: #999;\n}\n\n.cp {\n color: #099;\n}\n\n.c1 {\n color: #999;\n}\n\n.cs {\n color: #999;\n}\n\n.gd {\n background-color: #fcc;\n border: 1px solid #c00;\n}\n\n.ge {\n font-style: italic;\n}\n\n.gr {\n color: #f00;\n}\n\n.gh {\n color: #030;\n}\n\n.gi {\n background-color: #cfc;\n border: 1px solid #0c0;\n}\n\n.go {\n color: #aaa;\n}\n\n.gp {\n color: #009;\n}\n\n.gu {\n color: #030;\n}\n\n.gt {\n color: #9c6;\n}\n\n.kc {\n color: #069;\n}\n\n.kd {\n color: #069;\n}\n\n.kn {\n color: #069;\n}\n\n.kp {\n color: #069;\n}\n\n.kr {\n color: #069;\n}\n\n.kt {\n color: #078;\n}\n\n.m {\n color: #f60;\n}\n\n.s {\n color: #d44950;\n}\n\n.na {\n color: #4f9fcf;\n}\n\n.nb {\n color: #366;\n}\n\n.nc {\n color: #0a8;\n}\n\n.no {\n color: #360;\n}\n\n.nd {\n color: #99f;\n}\n\n.ni {\n color: #999;\n}\n\n.ne {\n color: #c00;\n}\n\n.nf {\n color: #c0f;\n}\n\n.nl {\n color: #99f;\n}\n\n.nn {\n color: #0cf;\n}\n\n.nt {\n color: #2f6f9f;\n}\n\n.nv {\n color: #033;\n}\n\n.ow {\n color: #000;\n}\n\n.w {\n color: #bbb;\n}\n\n.mf {\n color: #f60;\n}\n\n.mh {\n color: #f60;\n}\n\n.mi {\n color: #f60;\n}\n\n.mo {\n color: #f60;\n}\n\n.sb {\n color: #c30;\n}\n\n.sc {\n color: #c30;\n}\n\n.sd {\n font-style: italic;\n color: #c30;\n}\n\n.s2 {\n color: #c30;\n}\n\n.se {\n color: #c30;\n}\n\n.sh {\n color: #c30;\n}\n\n.si {\n color: #a00;\n}\n\n.sx {\n color: #c30;\n}\n\n.sr {\n color: #3aa;\n}\n\n.s1 {\n color: #c30;\n}\n\n.ss {\n color: #fc3;\n}\n\n.bp {\n color: #366;\n}\n\n.vc {\n color: #033;\n}\n\n.vg {\n color: #033;\n}\n\n.vi {\n color: #033;\n}\n\n.il {\n color: #f60;\n}\n\n.css .o,\n.css .o + .nt,\n.css .nt + .nt {\n color: #999;\n}\n\n.language-bash::before,\n.language-sh::before {\n color: #009;\n content: \"$ \";\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.language-powershell::before {\n color: #009;\n content: \"PM> \";\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.anchorjs-link {\n font-weight: 400;\n color: rgba(0, 123, 255, 0.5);\n transition: color 0.15s ease-in-out, opacity 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .anchorjs-link {\n transition: none;\n }\n}\n\n.anchorjs-link:hover {\n color: #007bff;\n text-decoration: none;\n}\n\n.algolia-autocomplete {\n display: block !important;\n flex: 1;\n}\n\n.algolia-autocomplete .ds-dropdown-menu {\n width: 100%;\n min-width: 0 !important;\n max-width: none !important;\n padding: .75rem 0 !important;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n@media (min-width: 768px) {\n .algolia-autocomplete .ds-dropdown-menu {\n width: 175%;\n }\n}\n\n.algolia-autocomplete .ds-dropdown-menu::before {\n display: none !important;\n}\n\n.algolia-autocomplete .ds-dropdown-menu [class^=\"ds-dataset-\"] {\n padding: 0 !important;\n overflow: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n}\n\n.algolia-autocomplete .ds-dropdown-menu .ds-suggestions {\n margin-top: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion {\n padding: 0 !important;\n overflow: visible !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--category-header {\n padding: .125rem 1rem !important;\n margin-top: 0 !important;\n font-size: 0.875rem !important;\n font-weight: 600 !important;\n color: #7952b3 !important;\n border-bottom: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--wrapper {\n float: none !important;\n padding-top: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column {\n float: none !important;\n width: auto !important;\n padding: 0 !important;\n text-align: left !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline {\n display: block !important;\n font-size: 0.875rem;\n color: #495057;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline::after {\n padding: 0 .25rem;\n content: \"/\";\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--content {\n display: flex;\n flex-wrap: wrap;\n float: none !important;\n width: 100% !important;\n padding: .25rem 1rem !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--content::before {\n display: none !important;\n}\n\n.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header {\n padding-top: .75rem !important;\n margin-top: .75rem !important;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column {\n display: none !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--title {\n display: block;\n margin-bottom: 0 !important;\n font-size: 0.875rem !important;\n font-weight: 400 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--text {\n flex: 0 0 100%;\n max-width: 100%;\n padding: .2rem 0;\n font-size: 0.8125rem !important;\n font-weight: 400;\n line-height: 1.25 !important;\n color: #6c757d;\n}\n\n.algolia-autocomplete .algolia-docsearch-footer {\n float: none !important;\n width: auto !important;\n height: auto !important;\n padding: .75rem 1rem 0;\n font-size: 0.75rem !important;\n line-height: 1 !important;\n color: #767676 !important;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.algolia-autocomplete .algolia-docsearch-footer--logo {\n display: inline !important;\n overflow: visible !important;\n color: inherit !important;\n text-indent: 0 !important;\n background: none !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--highlight {\n color: #5f2dab;\n background-color: rgba(154, 132, 187, 0.12);\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {\n box-shadow: inset 0 -2px 0 0 rgba(95, 45, 171, 0.5) !important;\n}\n\n.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content {\n background-color: rgba(208, 189, 236, 0.15) !important;\n}\n/*# sourceMappingURL=docs.min.css.map */",".skippy {\n display: block;\n padding: 1em;\n color: $white;\n text-align: center;\n background-color: $bd-purple;\n outline: 0;\n\n @include hover {\n color: $white;\n }\n}\n\n.skippy-text {\n padding: .5em;\n outline: 1px dotted;\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Right side table of contents\n//\n\n.bd-toc {\n @supports (position: sticky) {\n position: sticky;\n top: 4rem;\n height: calc(100vh - 4rem);\n overflow-y: auto;\n }\n order: 2;\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n @include font-size(.875rem);\n}\n\n.section-nav {\n padding-left: 0;\n border-left: 1px solid #eee;\n\n ul {\n padding-left: 1rem;\n }\n}\n\n.toc-entry {\n display: block;\n\n a {\n display: block;\n padding: .125rem 1.5rem;\n color: #77757a;\n\n &:hover {\n color: $blue;\n text-decoration: none;\n }\n }\n}\n\n//\n// Left side navigation\n//\n\n.bd-sidebar {\n order: 0;\n // background-color: #f5f2f9;\n border-bottom: 1px solid rgba(0, 0, 0, .1);\n\n @include media-breakpoint-up(md) {\n @supports (position: sticky) {\n position: sticky;\n top: 4rem;\n z-index: 1000;\n height: calc(100vh - 4rem);\n }\n border-right: 1px solid rgba(0, 0, 0, .1);\n }\n\n @include media-breakpoint-up(xl) {\n flex: 0 1 320px;\n }\n}\n\n.bd-links {\n padding-top: 1rem;\n padding-bottom: 1rem;\n margin-right: -15px;\n margin-left: -15px;\n\n @include media-breakpoint-up(md) {\n @supports (position: sticky) {\n max-height: calc(100vh - 9rem);\n overflow-y: auto;\n }\n }\n\n // Override collapse behaviors\n @include media-breakpoint-up(md) {\n display: block !important;\n }\n}\n\n.bd-search {\n position: relative; // To contain the Algolia search\n padding: 1rem 15px;\n margin-right: -15px;\n margin-left: -15px;\n border-bottom: 1px solid rgba(0, 0, 0, .05);\n\n .form-control:focus {\n border-color: $bd-purple-bright;\n box-shadow: 0 0 0 3px rgba($bd-purple-bright, .25);\n }\n}\n\n.bd-search-docs-toggle {\n line-height: 1;\n color: $gray-900;\n}\n\n.bd-sidenav {\n display: none;\n}\n\n.bd-toc-link {\n display: block;\n padding: .25rem 1.5rem;\n font-weight: 600;\n color: rgba(0, 0, 0, .65);\n\n &:hover {\n color: rgba(0, 0, 0, .85);\n text-decoration: none;\n }\n}\n\n.bd-toc-item {\n &.active {\n margin-bottom: 1rem;\n\n &:not(:first-child) {\n margin-top: 1rem;\n }\n\n > .bd-toc-link {\n color: rgba(0, 0, 0, .85);\n\n &:hover {\n background-color: transparent;\n }\n }\n\n > .bd-sidenav {\n display: block;\n }\n }\n}\n\n// All levels of nav\n.bd-sidebar .nav > li > a {\n display: block;\n padding: .25rem 1.5rem;\n @include font-size(90%);\n color: rgba(0, 0, 0, .65);\n}\n\n.bd-sidebar .nav > li > a:hover {\n color: rgba(0, 0, 0, .85);\n text-decoration: none;\n background-color: transparent;\n}\n\n.bd-sidebar .nav > .active > a,\n.bd-sidebar .nav > .active:hover > a {\n font-weight: 600;\n color: rgba(0, 0, 0, .85);\n background-color: transparent;\n}\n","//\n// Footer\n//\n\n.bd-footer {\n @include font-size(.875rem);\n text-align: center;\n background-color: #f7f7f7;\n\n a {\n font-weight: 600;\n color: $gray-700;\n\n &:hover,\n &:focus {\n color: $link-color;\n }\n }\n\n p {\n margin-bottom: 0;\n }\n\n @include media-breakpoint-up(sm) {\n text-align: left;\n }\n}\n\n.bd-footer-links {\n padding-left: 0;\n margin-bottom: 1rem;\n\n li {\n display: inline-block;\n\n + li {\n margin-left: 1rem;\n }\n }\n}\n","// stylelint-disable no-duplicate-selectors, selector-no-qualifying-type\n\n//\n// Grid examples\n//\n\n.bd-example-row {\n .row {\n > .col,\n > [class^=\"col-\"] {\n padding-top: .75rem;\n padding-bottom: .75rem;\n background-color: rgba(86, 61, 124, .15);\n border: 1px solid rgba(86, 61, 124, .2);\n }\n }\n\n .row + .row {\n margin-top: 1rem;\n }\n\n .flex-items-top,\n .flex-items-middle,\n .flex-items-bottom {\n min-height: 6rem;\n background-color: rgba(255, 0, 0, .1);\n }\n}\n\n.bd-example-row-flex-cols .row {\n min-height: 10rem;\n background-color: rgba(255, 0, 0, .1);\n}\n\n.bd-highlight {\n background-color: rgba($bd-purple, .15);\n border: 1px solid rgba($bd-purple, .15);\n}\n\n// Grid mixins\n.example-container {\n width: 800px;\n @include make-container();\n}\n\n.example-row {\n @include make-row();\n}\n\n.example-content-main {\n @include make-col-ready();\n\n @include media-breakpoint-up(sm) {\n @include make-col(6);\n }\n\n @include media-breakpoint-up(lg) {\n @include make-col(8);\n }\n}\n\n.example-content-secondary {\n @include make-col-ready();\n\n @include media-breakpoint-up(sm) {\n @include make-col(6);\n }\n\n @include media-breakpoint-up(lg) {\n @include make-col(4);\n }\n}\n\n\n//\n// Container illustrations\n//\n\n.bd-example-container {\n min-width: 16rem;\n max-width: 25rem;\n margin-right: auto;\n margin-left: auto;\n}\n\n.bd-example-container-header {\n height: 3rem;\n margin-bottom: .5rem;\n background-color: lighten($blue, 50%);\n @include border-radius;\n}\n\n.bd-example-container-sidebar {\n float: right;\n width: 4rem;\n height: 8rem;\n background-color: lighten($blue, 25%);\n @include border-radius;\n}\n\n.bd-example-container-body {\n height: 8rem;\n margin-right: 4.5rem;\n background-color: lighten($bd-purple, 25%);\n @include border-radius;\n}\n\n.bd-example-container-fluid {\n max-width: none;\n}\n\n\n//\n// Docs examples\n//\n\n.bd-example {\n position: relative;\n padding: 1rem;\n margin: 1rem (-$grid-gutter-width / 2) 0;\n border: solid $gray-100;\n border-width: .2rem 0 0;\n @include clearfix();\n\n @include media-breakpoint-up(sm) {\n padding: 1.5rem;\n margin-right: 0;\n margin-left: 0;\n border-width: .2rem;\n }\n\n + .highlight,\n + .clipboard + .highlight {\n margin-top: 0;\n }\n\n + p {\n margin-top: 2rem;\n }\n\n .pos-f-t {\n position: relative;\n margin: -1rem;\n\n @include media-breakpoint-up(sm) {\n margin: -1.5rem;\n }\n }\n\n .custom-file-input:lang(es) ~ .custom-file-label::after {\n content: \"Elegir\";\n }\n\n > .form-control {\n + .form-control {\n margin-top: .5rem;\n }\n }\n\n > .nav + .nav,\n > .alert + .alert,\n > .navbar + .navbar,\n > .progress + .progress,\n > .progress + .btn {\n margin-top: 1rem;\n }\n\n > .dropdown-menu:first-child {\n position: static;\n display: block;\n }\n\n > .form-group:last-child {\n margin-bottom: 0;\n }\n\n > .close {\n float: none;\n }\n}\n\n// Typography\n.bd-example-type {\n .table {\n td {\n padding: 1rem 0;\n border-color: #eee;\n }\n tr:first-child td {\n border-top: 0;\n }\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n// Contextual background colors\n.bd-example-bg-classes p {\n padding: 1rem;\n}\n\n// Images\n.bd-example {\n > svg + svg,\n > img + img {\n margin-left: .5rem;\n }\n}\n\n// Buttons\n.bd-example {\n > .btn,\n > .btn-group {\n margin-top: .25rem;\n margin-bottom: .25rem;\n }\n > .btn-toolbar + .btn-toolbar {\n margin-top: .5rem;\n }\n}\n\n// Forms\n.bd-example-control-sizing select,\n.bd-example-control-sizing input[type=\"text\"] + input[type=\"text\"] {\n margin-top: .5rem;\n}\n.bd-example-form .input-group {\n margin-bottom: .5rem;\n}\n.bd-example > textarea.form-control {\n resize: vertical;\n}\n\n// List groups\n.bd-example > .list-group {\n max-width: 400px;\n}\n.bd-example > [class*=\"list-group-horizontal\"] {\n max-width: 100%;\n}\n\n// Navbars\n.bd-example {\n .fixed-top,\n .sticky-top {\n position: static;\n margin: -1rem -1rem 1rem;\n }\n .fixed-bottom {\n position: static;\n margin: 1rem -1rem -1rem;\n }\n\n @include media-breakpoint-up(sm) {\n .fixed-top,\n .sticky-top {\n margin: -1.5rem -1.5rem 1rem;\n }\n .fixed-bottom {\n margin: 1rem -1.5rem -1.5rem;\n }\n }\n}\n\n// Pagination\n.bd-example .pagination {\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n// Example modals\n.modal {\n z-index: 1072;\n\n .tooltip,\n .popover {\n z-index: 1073;\n }\n}\n\n.modal-backdrop {\n z-index: 1071;\n}\n\n.bd-example-modal {\n background-color: #fafafa;\n\n .modal {\n position: relative;\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n z-index: 1;\n display: block;\n }\n\n .modal-dialog {\n left: auto;\n margin-right: auto;\n margin-left: auto;\n }\n}\n\n// Example tabbable tabs\n.bd-example-tabs .nav-tabs {\n margin-bottom: 1rem;\n}\n\n// Popovers\n.bd-example-popover-static {\n padding-bottom: 1.5rem;\n background-color: #f9f9f9;\n\n .popover {\n position: relative;\n display: block;\n float: left;\n width: 260px;\n margin: 1.25rem;\n }\n}\n\n// Tooltips\n.tooltip-demo a {\n white-space: nowrap;\n}\n\n.bd-example-tooltip-static .tooltip {\n position: relative;\n display: inline-block;\n margin: 10px 20px;\n opacity: 1;\n}\n\n// Scrollspy demo on fixed height div\n.scrollspy-example {\n position: relative;\n height: 200px;\n margin-top: .5rem;\n overflow: auto;\n}\n\n.scrollspy-example-2 {\n position: relative;\n height: 350px;\n overflow: auto;\n}\n\n.bd-example-border-utils {\n [class^=\"border\"] {\n display: inline-block;\n width: 5rem;\n height: 5rem;\n margin: .25rem;\n background-color: #f5f5f5;\n }\n}\n\n.bd-example-border-utils-0 {\n [class^=\"border\"] {\n border: 1px solid $border-color;\n }\n}\n\n//\n// Code snippets\n//\n\n.highlight {\n padding: 1rem;\n margin-top: 1rem;\n margin-bottom: 1rem;\n background-color: $gray-100;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n\n @include media-breakpoint-up(sm) {\n padding: 1.5rem;\n }\n}\n\n.bd-content .highlight {\n margin-right: (-$grid-gutter-width / 2);\n margin-left: (-$grid-gutter-width / 2);\n\n @include media-breakpoint-up(sm) {\n margin-right: 0;\n margin-left: 0;\n }\n}\n\n.highlight {\n pre {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n background-color: transparent;\n border: 0;\n }\n pre code {\n @include font-size(inherit);\n color: $gray-900; // Effectively the base text color\n }\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","// Buttons\n//\n// Custom buttons for the docs.\n\n.btn-bd-primary {\n font-weight: 600;\n color: $bd-purple-bright;\n border-color: $bd-purple-bright;\n\n &:hover,\n &:active {\n color: $white;\n background-color: $bd-purple-bright;\n border-color: $bd-purple-bright;\n }\n\n &:focus {\n box-shadow: 0 0 0 3px rgba($bd-purple-bright, .25);\n }\n}\n\n.btn-bd-download {\n font-weight: 600;\n color: $bd-download;\n border-color: $bd-download;\n\n &:hover,\n &:active {\n color: $bd-dark;\n background-color: $bd-download;\n border-color: $bd-download;\n }\n\n &:focus {\n box-shadow: 0 0 0 3px rgba($bd-download, .25);\n }\n}\n","//\n// Callouts\n//\n\n.bd-callout {\n padding: 1.25rem;\n margin-top: 1.25rem;\n margin-bottom: 1.25rem;\n border: 1px solid #eee;\n border-left-width: .25rem;\n @include border-radius;\n\n h4 {\n margin-top: 0;\n margin-bottom: .25rem;\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n\n code {\n @include border-radius;\n }\n\n + .bd-callout {\n margin-top: -.25rem;\n }\n}\n\n// Variations\n@mixin bs-callout-variant($color) {\n border-left-color: $color;\n\n h4 { color: $color; }\n}\n\n.bd-callout-info { @include bs-callout-variant($bd-info); }\n.bd-callout-warning { @include bs-callout-variant($bd-warning); }\n.bd-callout-danger { @include bs-callout-variant($bd-danger); }\n","// Wall of Browser Bugs\n//\n// Better display for the responsive table on the Wall of Browser Bugs.\n\n.bd-browser-bugs {\n td p {\n margin-bottom: 0;\n }\n th:first-child {\n width: 18%;\n }\n}\n","//\n// Brand guidelines\n//\n\n// Logo series wrapper\n.bd-brand-logos {\n display: table;\n width: 100%;\n margin-bottom: 1rem;\n overflow: hidden;\n color: $bd-purple;\n background-color: #f9f9f9;\n @include border-radius;\n\n .inverse {\n color: $white;\n background-color: $bd-purple;\n }\n}\n\n// Individual items\n.bd-brand-item {\n padding: 4rem 0;\n text-align: center;\n\n + .bd-brand-item {\n border-top: 1px solid $white;\n }\n\n // Heading content within\n h1,\n h3 {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n @include media-breakpoint-up(md) {\n display: table-cell;\n width: 1%;\n\n + .bd-brand-item {\n border-top: 0;\n border-left: 1px solid $white;\n }\n\n h1 {\n @include font-size(4rem);\n }\n }\n}\n\n\n//\n// Color swatches\n//\n\n.color-swatches {\n margin: 0 -5px;\n overflow: hidden; // clearfix\n\n // Docs colors\n .bd-purple {\n background-color: $bd-purple;\n }\n .bd-purple-light {\n background-color: $bd-purple-light;\n }\n .bd-purple-lighter {\n background-color: #e5e1ea;\n }\n .bd-gray {\n background-color: #f9f9f9;\n }\n}\n\n.color-swatch {\n float: left;\n width: 4rem;\n height: 4rem;\n margin-right: .25rem;\n margin-left: .25rem;\n @include border-radius;\n\n @include media-breakpoint-up(md) {\n width: 6rem;\n height: 6rem;\n }\n}\n","//\n// Docs color palette classes\n//\n\n@each $color, $value in $colors {\n .swatch-#{$color} {\n color: color-yiq($value);\n background-color: #{$value};\n }\n}\n\n@each $color, $value in $theme-colors {\n .swatch-#{$color} {\n color: color-yiq($value);\n background-color: #{$value};\n }\n}\n\n@each $color, $value in $grays {\n .swatch-#{$color} {\n color: color-yiq($value);\n background-color: #{$value};\n }\n}\n","// clipboard.js\n//\n// JS-based `Copy` buttons for code snippets.\n\n.bd-clipboard {\n position: relative;\n display: none;\n float: right;\n\n + .highlight {\n margin-top: 0;\n }\n\n @include media-breakpoint-up(md) {\n display: block;\n }\n}\n\n.btn-clipboard {\n position: absolute;\n top: .5rem;\n right: .5rem;\n z-index: 10;\n display: block;\n padding: .25rem .5rem;\n @include font-size(75%);\n color: #818a91;\n background-color: transparent;\n border: 0;\n @include border-radius;\n\n &:hover {\n color: $white;\n background-color: #027de7;\n }\n}\n","//\n// Placeholder svg used in the docs.\n//\n\n// Remember to update `site/_layouts/examples.html` too if this changes!\n\n.bd-placeholder-img {\n @include font-size(1.125rem);\n text-anchor: middle;\n user-select: none;\n}\n\n.bd-placeholder-img-lg {\n @include font-size(3.5rem);\n}\n","// stylelint-disable declaration-block-single-line-max-declarations, selector-class-pattern\n\n.hll { background-color: #ffc; }\n.c { color: #999; }\n.k { color: #069; }\n.o { color: #555; }\n.cm { color: #999; }\n.cp { color: #099; }\n.c1 { color: #999; }\n.cs { color: #999; }\n.gd { background-color: #fcc; border: 1px solid #c00; }\n.ge { font-style: italic; }\n.gr { color: #f00; }\n.gh { color: #030; }\n.gi { background-color: #cfc; border: 1px solid #0c0; }\n.go { color: #aaa; }\n.gp { color: #009; }\n.gu { color: #030; }\n.gt { color: #9c6; }\n.kc { color: #069; }\n.kd { color: #069; }\n.kn { color: #069; }\n.kp { color: #069; }\n.kr { color: #069; }\n.kt { color: #078; }\n.m { color: #f60; }\n.s { color: #d44950; }\n.na { color: #4f9fcf; }\n.nb { color: #366; }\n.nc { color: #0a8; }\n.no { color: #360; }\n.nd { color: #99f; }\n.ni { color: #999; }\n.ne { color: #c00; }\n.nf { color: #c0f; }\n.nl { color: #99f; }\n.nn { color: #0cf; }\n.nt { color: #2f6f9f; }\n.nv { color: #033; }\n.ow { color: #000; }\n.w { color: #bbb; }\n.mf { color: #f60; }\n.mh { color: #f60; }\n.mi { color: #f60; }\n.mo { color: #f60; }\n.sb { color: #c30; }\n.sc { color: #c30; }\n.sd { font-style: italic; color: #c30; }\n.s2 { color: #c30; }\n.se { color: #c30; }\n.sh { color: #c30; }\n.si { color: #a00; }\n.sx { color: #c30; }\n.sr { color: #3aa; }\n.s1 { color: #c30; }\n.ss { color: #fc3; }\n.bp { color: #366; }\n.vc { color: #033; }\n.vg { color: #033; }\n.vi { color: #033; }\n.il { color: #f60; }\n\n.css .o,\n.css .o + .nt,\n.css .nt + .nt { color: #999; }\n\n.language-bash::before,\n.language-sh::before {\n color: #009;\n content: \"$ \";\n user-select: none;\n}\n\n.language-powershell::before {\n color: #009;\n content: \"PM> \";\n user-select: none;\n}\n",".anchorjs-link {\n font-weight: 400;\n color: rgba($link-color, .5);\n @include transition(color .15s ease-in-out, opacity .15s ease-in-out);\n\n &:hover {\n color: $link-color;\n text-decoration: none;\n }\n}\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Docsearch overrides\n//\n// `!important` indicates overridden properties.\n.algolia-autocomplete {\n display: block !important;\n flex: 1;\n\n // Menu container\n .ds-dropdown-menu {\n width: 100%;\n min-width: 0 !important;\n max-width: none !important;\n padding: .75rem 0 !important;\n background-color: $white;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, .1);\n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .175);\n\n @include media-breakpoint-up(md) {\n width: 175%;\n }\n\n // Caret\n &::before {\n display: none !important;\n }\n\n [class^=\"ds-dataset-\"] {\n padding: 0 !important;\n overflow: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n }\n\n .ds-suggestions {\n margin-top: 0 !important;\n }\n }\n\n .algolia-docsearch-suggestion {\n padding: 0 !important;\n overflow: visible !important;\n }\n\n .algolia-docsearch-suggestion--category-header {\n padding: .125rem 1rem !important;\n margin-top: 0 !important;\n @include font-size(.875rem, true);\n font-weight: 600 !important;\n color: $bd-purple-bright !important;\n border-bottom: 0 !important;\n }\n\n .algolia-docsearch-suggestion--wrapper {\n float: none !important;\n padding-top: 0 !important;\n }\n\n // Section header\n .algolia-docsearch-suggestion--subcategory-column {\n float: none !important;\n width: auto !important;\n padding: 0 !important;\n text-align: left !important;\n }\n\n .algolia-docsearch-suggestion--subcategory-inline {\n display: block !important;\n @include font-size(.875rem);\n color: $gray-700;\n\n &::after {\n padding: 0 .25rem;\n content: \"/\";\n }\n }\n\n .algolia-docsearch-suggestion--content {\n display: flex;\n flex-wrap: wrap;\n float: none !important;\n width: 100% !important;\n padding: .25rem 1rem !important;\n\n // Vertical divider between column header and content\n &::before {\n display: none !important;\n }\n }\n\n .ds-suggestion {\n &:not(:first-child) {\n .algolia-docsearch-suggestion--category-header {\n padding-top: .75rem !important;\n margin-top: .75rem !important;\n border-top: 1px solid rgba(0, 0, 0, .1);\n }\n }\n\n .algolia-docsearch-suggestion--subcategory-column {\n display: none !important;\n }\n }\n\n .algolia-docsearch-suggestion--title {\n display: block;\n margin-bottom: 0 !important;\n @include font-size(.875rem, true);\n font-weight: 400 !important;\n }\n\n .algolia-docsearch-suggestion--text {\n flex: 0 0 100%;\n max-width: 100%;\n padding: .2rem 0;\n @include font-size(.8125rem, true);\n font-weight: 400;\n line-height: 1.25 !important;\n color: $gray-600;\n }\n\n .algolia-docsearch-footer {\n float: none !important;\n width: auto !important;\n height: auto !important;\n padding: .75rem 1rem 0;\n @include font-size(.75rem, true);\n line-height: 1 !important;\n color: #767676 !important;\n border-top: 1px solid rgba(0, 0, 0, .1);\n }\n\n .algolia-docsearch-footer--logo {\n display: inline !important;\n overflow: visible !important;\n color: inherit !important;\n text-indent: 0 !important;\n background: none !important;\n }\n\n .algolia-docsearch-suggestion--highlight {\n color: #5f2dab;\n background-color: rgba(154, 132, 187, .12);\n }\n\n .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {\n box-shadow: inset 0 -2px 0 0 rgba(95, 45, 171, .5) !important;\n }\n\n .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content {\n background-color: rgba(208, 189, 236, .15) !important;\n }\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../scss/docs.scss","../scss/_nav.scss","../../../../../../scss/mixins/_breakpoints.scss","../../../../../../scss/vendor/_rfs.scss","../scss/_masthead.scss","../scss/_ads.scss","../../../../../../scss/mixins/_border-radius.scss","../scss/_content.scss","site/static/docs/4.3/assets/css/docs.min.css","../scss/_skippy.scss","../../../../../../scss/mixins/_hover.scss","../scss/_sidebar.scss","../scss/_footer.scss","../scss/_component-examples.scss","../../../../../../scss/mixins/_grid.scss","../../../../../../scss/mixins/_clearfix.scss","../scss/_buttons.scss","../scss/_callouts.scss","../scss/_browser-bugs.scss","../scss/_brand.scss","../scss/_colors.scss","../scss/_clipboard-js.scss","../scss/_placeholder-img.scss","../scss/_syntax.scss","../scss/_anchor.scss","../../../../../../scss/mixins/_transition.scss","../scss/_algolia.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Docs (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under the Creative Commons Attribution 3.0 Unported License.\n * For details, see https://creativecommons.org/licenses/by/3.0/.\n */\n\n// Dev notes\n//\n// Background information on nomenclature and architecture decisions here.\n//\n// - Bootstrap functions, variables, and mixins are included for easy reuse.\n// Doing so gives us access to the same core utilities provided by Bootstrap.\n// For example, consistent media queries through those mixins.\n//\n// - Bootstrap's **docs variables** are prefixed with `$bd-`.\n// These custom colors avoid collision with the components Bootstrap provides.\n//\n// - Classes are prefixed with `.bd-`.\n// These classes indicate custom-built or modified components for the design\n// and layout of the Bootstrap docs. They are not included in our builds.\n//\n// Happy Bootstrapping!\n\n// Load Bootstrap variables and mixins\n@import \"../../../../../../scss/functions\";\n@import \"../../../../../../scss/variables\";\n@import \"../../../../../../scss/mixins\";\n\n// Load docs components\n@import \"variables\";\n@import \"nav\";\n@import \"masthead\";\n@import \"ads\";\n@import \"content\";\n@import \"skippy\";\n@import \"sidebar\";\n@import \"footer\";\n@import \"component-examples\";\n@import \"buttons\";\n@import \"callouts\";\n@import \"browser-bugs\";\n@import \"brand\";\n@import \"colors\";\n@import \"clipboard-js\";\n@import \"placeholder-img\";\n\n// Load docs dependencies\n@import \"syntax\";\n@import \"anchor\";\n@import \"algolia\";\n","//\n// Main navbar\n//\n\n.bd-navbar {\n min-height: 4rem;\n background-color: $bd-purple;\n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .05), inset 0 -1px 0 rgba(0, 0, 0, .1);\n\n @include media-breakpoint-down(md) {\n padding-right: .5rem;\n padding-left: .5rem;\n\n .navbar-nav-scroll {\n max-width: 100%;\n height: 2.5rem;\n margin-top: .25rem;\n overflow: hidden;\n\n .navbar-nav {\n padding-bottom: 2rem;\n overflow-x: auto;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n }\n }\n }\n\n @include media-breakpoint-up(md) {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: 1071; // over everything in bootstrap\n }\n }\n\n .navbar-nav {\n .nav-link {\n padding-right: .5rem;\n padding-left: .5rem;\n color: $bd-purple-light;\n\n &.active,\n &:hover {\n color: $white;\n background-color: transparent;\n }\n\n &.active {\n font-weight: 600;\n }\n }\n }\n\n .navbar-nav-svg {\n display: inline-block;\n width: 1rem;\n height: 1rem;\n vertical-align: text-top;\n }\n\n .dropdown-menu {\n @include font-size(.875rem);\n }\n\n .dropdown-item.active {\n font-weight: 600;\n color: $gray-900;\n background-color: transparent;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' 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\");\n background-repeat: no-repeat;\n background-position: .4rem .6rem;\n background-size: .75rem .75rem;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive font sizes\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/master/LICENSE)\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n@if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize font size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-disable-class {\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity, which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-enable-class {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n @content;\n }\n }\n @else {\n @content;\n }\n}\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query($mq-value) {\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @content;\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @content;\n }\n }\n}\n\n// Responsive font size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Remove unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font size\n $rfs-static: if($rfs-font-size-unit == rem, #{$fs / $rfs-rem-value}rem, #{$fs}px);\n\n // Only add the media query if the font size is bigger than the minimum font size\n @if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n @else {\n // Calculate the minimum font size for $fs\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between $fs and the minimum font size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n\n // Breakpoint formatting\n $mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit});\n\n @include _rfs-disable-class {\n font-size: #{$rfs-static}#{$rfs-suffix};\n }\n\n @include _rfs-media-query($mq-value) {\n @include _rfs-enable-class {\n font-size: $rfs-fluid;\n }\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixins use RFS to rescale the font size\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// stylelint-disable declaration-no-important\n\n.bd-masthead {\n position: relative;\n padding: 3rem ($grid-gutter-width / 2);\n // background-image: linear-gradient(45deg, #fafafa, #f5f5f5);\n\n h1 {\n @include font-size(4rem);\n line-height: 1;\n }\n\n .btn {\n padding: .8rem 2rem;\n font-weight: 600;\n @include font-size(1.25rem);\n }\n\n .carbonad {\n margin-top: 0 !important;\n margin-bottom: -3rem !important;\n }\n\n @include media-breakpoint-up(sm) {\n padding-top: 5rem;\n padding-bottom: 5rem;\n\n .carbonad {\n margin-bottom: 0 !important;\n }\n }\n\n @include media-breakpoint-up(md) {\n .carbonad {\n margin-top: 3rem !important;\n }\n }\n}\n\n.half-rule {\n width: 6rem;\n margin: 2.5rem 0;\n}\n\n.masthead-followup {\n .bd-clipboard { display: none; }\n\n .highlight {\n padding: .5rem 0;\n background-color: transparent;\n }\n}\n","// stylelint-disable declaration-no-important, selector-max-id\n\n//\n// Carbon ads\n//\n\n#carbonads {\n position: static;\n display: block;\n max-width: 400px;\n padding: 15px 15px 15px 160px;\n margin: 2rem 0;\n overflow: hidden;\n @include font-size(.8125rem);\n line-height: 1.4;\n text-align: left;\n background-color: rgba(0, 0, 0, .05);\n\n a {\n color: #333;\n text-decoration: none;\n }\n\n @include media-breakpoint-up(sm) {\n max-width: 330px;\n @include border-radius(4px);\n }\n}\n\n.carbon-img {\n float: left;\n margin-left: -145px;\n}\n\n.carbon-poweredby {\n display: block;\n color: #777 !important;\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// stylelint-disable no-duplicate-selectors, selector-max-combinators, selector-max-compound-selectors, selector-max-type, selector-no-qualifying-type\n\n//\n// Automatically style Markdown-based tables like a Bootstrap `.table`.\n//\n\n.bd-content {\n order: 1;\n\n // Hack the sticky header\n > h2[id],\n > h3[id],\n > h4[id] {\n pointer-events: none;\n\n &::before {\n display: block;\n height: 6rem;\n margin-top: -6rem;\n content: \"\";\n }\n }\n\n > table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n\n @include media-breakpoint-down(md) {\n display: block;\n overflow-x: auto;\n\n &.table-bordered {\n border: 0;\n }\n }\n\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: $table-cell-padding;\n vertical-align: top;\n border: 1px solid $table-border-color;\n\n > p:last-child {\n margin-bottom: 0;\n }\n }\n }\n }\n\n // Prevent breaking of code (e.g., Grunt tasks list)\n td:first-child > code {\n white-space: nowrap;\n }\n }\n}\n\n.bd-content-title {\n display: block;\n pointer-events: auto;\n}\n\n//\n// Docs sections\n//\n\n.bd-content {\n > h2 {\n @include font-size($h2-font-size);\n }\n\n > h3 {\n @include font-size($h3-font-size);\n }\n\n > h4 {\n @include font-size($h4-font-size);\n }\n\n > h2:not(:first-child) {\n margin-top: 3rem;\n }\n\n > h3 {\n margin-top: 1.5rem;\n }\n\n > ul li,\n > ol li {\n margin-bottom: .25rem;\n }\n\n @include media-breakpoint-up(lg) {\n > ul,\n > ol,\n > p {\n max-width: 80%;\n }\n }\n}\n\n.bd-title {\n margin-top: 1rem;\n margin-bottom: .5rem;\n font-weight: 300;\n @include font-size(3rem);\n}\n\n.bd-lead {\n @include font-size(1.5rem);\n font-weight: 300;\n\n @include media-breakpoint-up(lg) {\n max-width: 80%;\n }\n}\n\n.bd-text-purple { color: $bd-purple; }\n.bd-text-purple-bright { color: $bd-purple-bright; }\n","/*!\n * Bootstrap Docs (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under the Creative Commons Attribution 3.0 Unported License.\n * For details, see https://creativecommons.org/licenses/by/3.0/.\n */\n.bd-navbar {\n min-height: 4rem;\n background-color: #563d7c;\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.05), inset 0 -1px 0 rgba(0, 0, 0, 0.1);\n}\n\n@media (max-width: 991.98px) {\n .bd-navbar {\n padding-right: .5rem;\n padding-left: .5rem;\n }\n .bd-navbar .navbar-nav-scroll {\n max-width: 100%;\n height: 2.5rem;\n margin-top: .25rem;\n overflow: hidden;\n }\n .bd-navbar .navbar-nav-scroll .navbar-nav {\n padding-bottom: 2rem;\n overflow-x: auto;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n }\n}\n\n@media (min-width: 768px) {\n @supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-navbar {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1071;\n }\n }\n}\n\n.bd-navbar .navbar-nav .nav-link {\n padding-right: .5rem;\n padding-left: .5rem;\n color: #cbbde2;\n}\n\n.bd-navbar .navbar-nav .nav-link.active, .bd-navbar .navbar-nav .nav-link:hover {\n color: #fff;\n background-color: transparent;\n}\n\n.bd-navbar .navbar-nav .nav-link.active {\n font-weight: 600;\n}\n\n.bd-navbar .navbar-nav-svg {\n display: inline-block;\n width: 1rem;\n height: 1rem;\n vertical-align: text-top;\n}\n\n.bd-navbar .dropdown-menu {\n font-size: 0.875rem;\n}\n\n.bd-navbar .dropdown-item.active {\n font-weight: 600;\n color: #212529;\n background-color: transparent;\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' 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\");\n background-repeat: no-repeat;\n background-position: .4rem .6rem;\n background-size: .75rem .75rem;\n}\n\n.bd-masthead {\n position: relative;\n padding: 3rem 15px;\n}\n\n.bd-masthead h1 {\n font-size: 4rem;\n line-height: 1;\n}\n\n@media (max-width: 1200px) {\n .bd-masthead h1 {\n font-size: calc(1.525rem + 3.3vw) ;\n }\n}\n\n.bd-masthead .btn {\n padding: .8rem 2rem;\n font-weight: 600;\n font-size: 1.25rem;\n}\n\n.bd-masthead .carbonad {\n margin-top: 0 !important;\n margin-bottom: -3rem !important;\n}\n\n@media (min-width: 576px) {\n .bd-masthead {\n padding-top: 5rem;\n padding-bottom: 5rem;\n }\n .bd-masthead .carbonad {\n margin-bottom: 0 !important;\n }\n}\n\n@media (min-width: 768px) {\n .bd-masthead .carbonad {\n margin-top: 3rem !important;\n }\n}\n\n.half-rule {\n width: 6rem;\n margin: 2.5rem 0;\n}\n\n.masthead-followup .bd-clipboard {\n display: none;\n}\n\n.masthead-followup .highlight {\n padding: .5rem 0;\n background-color: transparent;\n}\n\n#carbonads {\n position: static;\n display: block;\n max-width: 400px;\n padding: 15px 15px 15px 160px;\n margin: 2rem 0;\n overflow: hidden;\n font-size: 0.8125rem;\n line-height: 1.4;\n text-align: left;\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n#carbonads a {\n color: #333;\n text-decoration: none;\n}\n\n@media (min-width: 576px) {\n #carbonads {\n max-width: 330px;\n border-radius: 4px;\n }\n}\n\n.carbon-img {\n float: left;\n margin-left: -145px;\n}\n\n.carbon-poweredby {\n display: block;\n color: #777 !important;\n}\n\n.bd-content {\n order: 1;\n}\n\n.bd-content > h2[id],\n.bd-content > h3[id],\n.bd-content > h4[id] {\n pointer-events: none;\n}\n\n.bd-content > h2[id]::before,\n.bd-content > h3[id]::before,\n.bd-content > h4[id]::before {\n display: block;\n height: 6rem;\n margin-top: -6rem;\n content: \"\";\n}\n\n.bd-content > table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n}\n\n@media (max-width: 991.98px) {\n .bd-content > table {\n display: block;\n overflow-x: auto;\n }\n .bd-content > table.table-bordered {\n border: 0;\n }\n}\n\n.bd-content > table > thead > tr > th,\n.bd-content > table > thead > tr > td,\n.bd-content > table > tbody > tr > th,\n.bd-content > table > tbody > tr > td,\n.bd-content > table > tfoot > tr > th,\n.bd-content > table > tfoot > tr > td {\n padding: 0.75rem;\n vertical-align: top;\n border: 1px solid #dee2e6;\n}\n\n.bd-content > table > thead > tr > th > p:last-child,\n.bd-content > table > thead > tr > td > p:last-child,\n.bd-content > table > tbody > tr > th > p:last-child,\n.bd-content > table > tbody > tr > td > p:last-child,\n.bd-content > table > tfoot > tr > th > p:last-child,\n.bd-content > table > tfoot > tr > td > p:last-child {\n margin-bottom: 0;\n}\n\n.bd-content > table td:first-child > code {\n white-space: nowrap;\n}\n\n.bd-content-title {\n display: block;\n pointer-events: auto;\n}\n\n.bd-content > h2 {\n font-size: 2rem;\n}\n\n@media (max-width: 1200px) {\n .bd-content > h2 {\n font-size: calc(1.325rem + 0.9vw) ;\n }\n}\n\n.bd-content > h3 {\n font-size: 1.75rem;\n}\n\n@media (max-width: 1200px) {\n .bd-content > h3 {\n font-size: calc(1.3rem + 0.6vw) ;\n }\n}\n\n.bd-content > h4 {\n font-size: 1.5rem;\n}\n\n@media (max-width: 1200px) {\n .bd-content > h4 {\n font-size: calc(1.275rem + 0.3vw) ;\n }\n}\n\n.bd-content > h2:not(:first-child) {\n margin-top: 3rem;\n}\n\n.bd-content > h3 {\n margin-top: 1.5rem;\n}\n\n.bd-content > ul li,\n.bd-content > ol li {\n margin-bottom: .25rem;\n}\n\n@media (min-width: 992px) {\n .bd-content > ul,\n .bd-content > ol,\n .bd-content > p {\n max-width: 80%;\n }\n}\n\n.bd-title {\n margin-top: 1rem;\n margin-bottom: .5rem;\n font-weight: 300;\n font-size: 3rem;\n}\n\n@media (max-width: 1200px) {\n .bd-title {\n font-size: calc(1.425rem + 2.1vw) ;\n }\n}\n\n.bd-lead {\n font-size: 1.5rem;\n font-weight: 300;\n}\n\n@media (max-width: 1200px) {\n .bd-lead {\n font-size: calc(1.275rem + 0.3vw) ;\n }\n}\n\n@media (min-width: 992px) {\n .bd-lead {\n max-width: 80%;\n }\n}\n\n.bd-text-purple {\n color: #563d7c;\n}\n\n.bd-text-purple-bright {\n color: #7952b3;\n}\n\n.skippy {\n display: block;\n padding: 1em;\n color: #fff;\n text-align: center;\n background-color: #563d7c;\n outline: 0;\n}\n\n.skippy:hover {\n color: #fff;\n}\n\n.skippy-text {\n padding: .5em;\n outline: 1px dotted;\n}\n\n.bd-toc {\n order: 2;\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n font-size: 0.875rem;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-toc {\n position: -webkit-sticky;\n position: sticky;\n top: 4rem;\n height: calc(100vh - 4rem);\n overflow-y: auto;\n }\n}\n\n.bd-toc nav {\n padding-left: 0;\n border-left: 1px solid #eee;\n}\n\n.bd-toc nav > ul,\n.bd-toc nav > ul > li > ul {\n padding: 0;\n}\n\n.bd-toc nav a code {\n font: inherit;\n}\n\n.bd-toc nav li {\n display: block;\n}\n\n.bd-toc nav li ul li ul {\n padding-left: 1rem;\n}\n\n.bd-toc nav li a {\n display: block;\n padding: .125rem 1.5rem;\n color: #77757a;\n}\n\n.bd-toc nav li a:hover {\n color: #007bff;\n text-decoration: none;\n}\n\n.bd-sidebar {\n order: 0;\n border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n@media (min-width: 768px) {\n .bd-sidebar {\n border-right: 1px solid rgba(0, 0, 0, 0.1);\n }\n @supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-sidebar {\n position: -webkit-sticky;\n position: sticky;\n top: 4rem;\n z-index: 1000;\n height: calc(100vh - 4rem);\n }\n }\n}\n\n@media (min-width: 1200px) {\n .bd-sidebar {\n flex: 0 1 320px;\n }\n}\n\n.bd-links {\n padding-top: 1rem;\n padding-bottom: 1rem;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n@media (min-width: 768px) {\n @supports ((position: -webkit-sticky) or (position: sticky)) {\n .bd-links {\n max-height: calc(100vh - 9rem);\n overflow-y: auto;\n }\n }\n}\n\n@media (min-width: 768px) {\n .bd-links {\n display: block !important;\n }\n}\n\n.bd-search {\n position: relative;\n padding: 1rem 15px;\n margin-right: -15px;\n margin-left: -15px;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.bd-search .form-control:focus {\n border-color: #7952b3;\n box-shadow: 0 0 0 3px rgba(121, 82, 179, 0.25);\n}\n\n.bd-search-docs-toggle {\n line-height: 1;\n color: #212529;\n}\n\n.bd-sidenav {\n display: none;\n}\n\n.bd-toc-link {\n display: block;\n padding: .25rem 1.5rem;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.65);\n}\n\n.bd-toc-link:hover {\n color: rgba(0, 0, 0, 0.85);\n text-decoration: none;\n}\n\n.bd-toc-item.active {\n margin-bottom: 1rem;\n}\n\n.bd-toc-item.active:not(:first-child) {\n margin-top: 1rem;\n}\n\n.bd-toc-item.active > .bd-toc-link {\n color: rgba(0, 0, 0, 0.85);\n}\n\n.bd-toc-item.active > .bd-toc-link:hover {\n background-color: transparent;\n}\n\n.bd-toc-item.active > .bd-sidenav {\n display: block;\n}\n\n.bd-sidebar .nav > li > a {\n display: block;\n padding: .25rem 1.5rem;\n font-size: 90%;\n color: rgba(0, 0, 0, 0.65);\n}\n\n.bd-sidebar .nav > li > a:hover {\n color: rgba(0, 0, 0, 0.85);\n text-decoration: none;\n background-color: transparent;\n}\n\n.bd-sidebar .nav > .active > a,\n.bd-sidebar .nav > .active:hover > a {\n font-weight: 600;\n color: rgba(0, 0, 0, 0.85);\n background-color: transparent;\n}\n\n.bd-footer {\n font-size: 0.875rem;\n text-align: center;\n background-color: #f7f7f7;\n}\n\n.bd-footer a {\n font-weight: 600;\n color: #495057;\n}\n\n.bd-footer a:hover, .bd-footer a:focus {\n color: #007bff;\n}\n\n.bd-footer p {\n margin-bottom: 0;\n}\n\n@media (min-width: 576px) {\n .bd-footer {\n text-align: left;\n }\n}\n\n.bd-footer-links {\n padding-left: 0;\n margin-bottom: 1rem;\n}\n\n.bd-footer-links li {\n display: inline-block;\n}\n\n.bd-footer-links li + li {\n margin-left: 1rem;\n}\n\n.bd-example-row .row > .col,\n.bd-example-row .row > [class^=\"col-\"] {\n padding-top: .75rem;\n padding-bottom: .75rem;\n background-color: rgba(86, 61, 124, 0.15);\n border: 1px solid rgba(86, 61, 124, 0.2);\n}\n\n.bd-example-row .row + .row {\n margin-top: 1rem;\n}\n\n.bd-example-row .flex-items-top,\n.bd-example-row .flex-items-middle,\n.bd-example-row .flex-items-bottom {\n min-height: 6rem;\n background-color: rgba(255, 0, 0, 0.1);\n}\n\n.bd-example-row-flex-cols .row {\n min-height: 10rem;\n background-color: rgba(255, 0, 0, 0.1);\n}\n\n.bd-highlight {\n background-color: rgba(86, 61, 124, 0.15);\n border: 1px solid rgba(86, 61, 124, 0.15);\n}\n\n.example-container {\n width: 800px;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.example-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.example-content-main {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n .example-content-main {\n flex: 0 0 50%;\n max-width: 50%;\n }\n}\n\n@media (min-width: 992px) {\n .example-content-main {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n}\n\n.example-content-secondary {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n .example-content-secondary {\n flex: 0 0 50%;\n max-width: 50%;\n }\n}\n\n@media (min-width: 992px) {\n .example-content-secondary {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n}\n\n.bd-example-container {\n min-width: 16rem;\n max-width: 25rem;\n margin-right: auto;\n margin-left: auto;\n}\n\n.bd-example-container-header {\n height: 3rem;\n margin-bottom: .5rem;\n background-color: white;\n border-radius: 0.25rem;\n}\n\n.bd-example-container-sidebar {\n float: right;\n width: 4rem;\n height: 8rem;\n background-color: #80bdff;\n border-radius: 0.25rem;\n}\n\n.bd-example-container-body {\n height: 8rem;\n margin-right: 4.5rem;\n background-color: #957bbe;\n border-radius: 0.25rem;\n}\n\n.bd-example-container-fluid {\n max-width: none;\n}\n\n.bd-example {\n position: relative;\n padding: 1rem;\n margin: 1rem -15px 0;\n border: solid #f8f9fa;\n border-width: .2rem 0 0;\n}\n\n.bd-example::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n@media (min-width: 576px) {\n .bd-example {\n padding: 1.5rem;\n margin-right: 0;\n margin-left: 0;\n border-width: .2rem;\n }\n}\n\n.bd-example + .highlight,\n.bd-example + .clipboard + .highlight {\n margin-top: 0;\n}\n\n.bd-example + p {\n margin-top: 2rem;\n}\n\n.bd-example .pos-f-t {\n position: relative;\n margin: -1rem;\n}\n\n@media (min-width: 576px) {\n .bd-example .pos-f-t {\n margin: -1.5rem;\n }\n}\n\n.bd-example .custom-file-input:lang(es) ~ .custom-file-label::after {\n content: \"Elegir\";\n}\n\n.bd-example > .form-control + .form-control {\n margin-top: .5rem;\n}\n\n.bd-example > .nav + .nav,\n.bd-example > .alert + .alert,\n.bd-example > .navbar + .navbar,\n.bd-example > .progress + .progress,\n.bd-example > .progress + .btn {\n margin-top: 1rem;\n}\n\n.bd-example > .dropdown-menu:first-child {\n position: static;\n display: block;\n}\n\n.bd-example > .form-group:last-child {\n margin-bottom: 0;\n}\n\n.bd-example > .close {\n float: none;\n}\n\n.bd-example-type .table td {\n padding: 1rem 0;\n border-color: #eee;\n}\n\n.bd-example-type .table tr:first-child td {\n border-top: 0;\n}\n\n.bd-example-type h1,\n.bd-example-type h2,\n.bd-example-type h3,\n.bd-example-type h4,\n.bd-example-type h5,\n.bd-example-type h6 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.bd-example-bg-classes p {\n padding: 1rem;\n}\n\n.bd-example > svg + svg,\n.bd-example > img + img {\n margin-left: .5rem;\n}\n\n.bd-example > .btn,\n.bd-example > .btn-group {\n margin-top: .25rem;\n margin-bottom: .25rem;\n}\n\n.bd-example > .btn-toolbar + .btn-toolbar {\n margin-top: .5rem;\n}\n\n.bd-example-control-sizing select,\n.bd-example-control-sizing input[type=\"text\"] + input[type=\"text\"] {\n margin-top: .5rem;\n}\n\n.bd-example-form .input-group {\n margin-bottom: .5rem;\n}\n\n.bd-example > textarea.form-control {\n resize: vertical;\n}\n\n.bd-example > .list-group {\n max-width: 400px;\n}\n\n.bd-example > [class*=\"list-group-horizontal\"] {\n max-width: 100%;\n}\n\n.bd-example .fixed-top,\n.bd-example .sticky-top {\n position: static;\n margin: -1rem -1rem 1rem;\n}\n\n.bd-example .fixed-bottom {\n position: static;\n margin: 1rem -1rem -1rem;\n}\n\n@media (min-width: 576px) {\n .bd-example .fixed-top,\n .bd-example .sticky-top {\n margin: -1.5rem -1.5rem 1rem;\n }\n .bd-example .fixed-bottom {\n margin: 1rem -1.5rem -1.5rem;\n }\n}\n\n.bd-example .pagination {\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n.modal {\n z-index: 1072;\n}\n\n.modal .tooltip,\n.modal .popover {\n z-index: 1073;\n}\n\n.modal-backdrop {\n z-index: 1071;\n}\n\n.bd-example-modal {\n background-color: #fafafa;\n}\n\n.bd-example-modal .modal {\n position: relative;\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n z-index: 1;\n display: block;\n}\n\n.bd-example-modal .modal-dialog {\n left: auto;\n margin-right: auto;\n margin-left: auto;\n}\n\n.bd-example-tabs .nav-tabs {\n margin-bottom: 1rem;\n}\n\n.bd-example-popover-static {\n padding-bottom: 1.5rem;\n background-color: #f9f9f9;\n}\n\n.bd-example-popover-static .popover {\n position: relative;\n display: block;\n float: left;\n width: 260px;\n margin: 1.25rem;\n}\n\n.tooltip-demo a {\n white-space: nowrap;\n}\n\n.bd-example-tooltip-static .tooltip {\n position: relative;\n display: inline-block;\n margin: 10px 20px;\n opacity: 1;\n}\n\n.scrollspy-example {\n position: relative;\n height: 200px;\n margin-top: .5rem;\n overflow: auto;\n}\n\n.scrollspy-example-2 {\n position: relative;\n height: 350px;\n overflow: auto;\n}\n\n.bd-example-border-utils [class^=\"border\"] {\n display: inline-block;\n width: 5rem;\n height: 5rem;\n margin: .25rem;\n background-color: #f5f5f5;\n}\n\n.bd-example-border-utils-0 [class^=\"border\"] {\n border: 1px solid #dee2e6;\n}\n\n.highlight {\n padding: 1rem;\n margin-top: 1rem;\n margin-bottom: 1rem;\n background-color: #f8f9fa;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n@media (min-width: 576px) {\n .highlight {\n padding: 1.5rem;\n }\n}\n\n.bd-content .highlight {\n margin-right: -15px;\n margin-left: -15px;\n}\n\n@media (min-width: 576px) {\n .bd-content .highlight {\n margin-right: 0;\n margin-left: 0;\n }\n}\n\n.highlight pre {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n background-color: transparent;\n border: 0;\n}\n\n.highlight pre code {\n font-size: inherit;\n color: #212529;\n}\n\n.btn-bd-primary {\n font-weight: 600;\n color: #7952b3;\n border-color: #7952b3;\n}\n\n.btn-bd-primary:hover, .btn-bd-primary:active {\n color: #fff;\n background-color: #7952b3;\n border-color: #7952b3;\n}\n\n.btn-bd-primary:focus {\n box-shadow: 0 0 0 3px rgba(121, 82, 179, 0.25);\n}\n\n.btn-bd-download {\n font-weight: 600;\n color: #ffe484;\n border-color: #ffe484;\n}\n\n.btn-bd-download:hover, .btn-bd-download:active {\n color: #2a2730;\n background-color: #ffe484;\n border-color: #ffe484;\n}\n\n.btn-bd-download:focus {\n box-shadow: 0 0 0 3px rgba(255, 228, 132, 0.25);\n}\n\n.bd-callout {\n padding: 1.25rem;\n margin-top: 1.25rem;\n margin-bottom: 1.25rem;\n border: 1px solid #eee;\n border-left-width: .25rem;\n border-radius: 0.25rem;\n}\n\n.bd-callout h4 {\n margin-top: 0;\n margin-bottom: .25rem;\n}\n\n.bd-callout p:last-child {\n margin-bottom: 0;\n}\n\n.bd-callout code {\n border-radius: 0.25rem;\n}\n\n.bd-callout + .bd-callout {\n margin-top: -.25rem;\n}\n\n.bd-callout-info {\n border-left-color: #5bc0de;\n}\n\n.bd-callout-info h4 {\n color: #5bc0de;\n}\n\n.bd-callout-warning {\n border-left-color: #f0ad4e;\n}\n\n.bd-callout-warning h4 {\n color: #f0ad4e;\n}\n\n.bd-callout-danger {\n border-left-color: #d9534f;\n}\n\n.bd-callout-danger h4 {\n color: #d9534f;\n}\n\n.bd-browser-bugs th:first-child {\n width: 18%;\n}\n\n.bd-brand-logos {\n display: table;\n width: 100%;\n margin-bottom: 1rem;\n overflow: hidden;\n color: #563d7c;\n background-color: #f9f9f9;\n border-radius: 0.25rem;\n}\n\n.bd-brand-logos .inverse {\n color: #fff;\n background-color: #563d7c;\n}\n\n.bd-brand-item {\n padding: 4rem 0;\n text-align: center;\n}\n\n.bd-brand-item + .bd-brand-item {\n border-top: 1px solid #fff;\n}\n\n.bd-brand-item h1,\n.bd-brand-item h3 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n@media (min-width: 768px) {\n .bd-brand-item {\n display: table-cell;\n width: 1%;\n }\n .bd-brand-item + .bd-brand-item {\n border-top: 0;\n border-left: 1px solid #fff;\n }\n .bd-brand-item h1 {\n font-size: 4rem;\n }\n}\n\n@media (min-width: 768px) and (max-width: 1200px) {\n .bd-brand-item h1 {\n font-size: calc(1.525rem + 3.3vw) ;\n }\n}\n\n.color-swatches {\n margin: 0 -5px;\n overflow: hidden;\n}\n\n.color-swatches .bd-purple {\n background-color: #563d7c;\n}\n\n.color-swatches .bd-purple-light {\n background-color: #cbbde2;\n}\n\n.color-swatches .bd-purple-lighter {\n background-color: #e5e1ea;\n}\n\n.color-swatches .bd-gray {\n background-color: #f9f9f9;\n}\n\n.color-swatch {\n float: left;\n width: 4rem;\n height: 4rem;\n margin-right: .25rem;\n margin-left: .25rem;\n border-radius: 0.25rem;\n}\n\n@media (min-width: 768px) {\n .color-swatch {\n width: 6rem;\n height: 6rem;\n }\n}\n\n.swatch-blue {\n color: #fff;\n background-color: #007bff;\n}\n\n.swatch-indigo {\n color: #fff;\n background-color: #6610f2;\n}\n\n.swatch-purple {\n color: #fff;\n background-color: #6f42c1;\n}\n\n.swatch-pink {\n color: #fff;\n background-color: #e83e8c;\n}\n\n.swatch-red {\n color: #fff;\n background-color: #dc3545;\n}\n\n.swatch-orange {\n color: #212529;\n background-color: #fd7e14;\n}\n\n.swatch-yellow {\n color: #212529;\n background-color: #ffc107;\n}\n\n.swatch-green {\n color: #fff;\n background-color: #28a745;\n}\n\n.swatch-teal {\n color: #fff;\n background-color: #20c997;\n}\n\n.swatch-cyan {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.swatch-white {\n color: #212529;\n background-color: #fff;\n}\n\n.swatch-gray {\n color: #fff;\n background-color: #6c757d;\n}\n\n.swatch-gray-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.swatch-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.swatch-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\n.swatch-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.swatch-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.swatch-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\n.swatch-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.swatch-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.swatch-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.swatch-100 {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.swatch-200 {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.swatch-300 {\n color: #212529;\n background-color: #dee2e6;\n}\n\n.swatch-400 {\n color: #212529;\n background-color: #ced4da;\n}\n\n.swatch-500 {\n color: #212529;\n background-color: #adb5bd;\n}\n\n.swatch-600 {\n color: #fff;\n background-color: #6c757d;\n}\n\n.swatch-700 {\n color: #fff;\n background-color: #495057;\n}\n\n.swatch-800 {\n color: #fff;\n background-color: #343a40;\n}\n\n.swatch-900 {\n color: #fff;\n background-color: #212529;\n}\n\n.bd-clipboard {\n position: relative;\n display: none;\n float: right;\n}\n\n.bd-clipboard + .highlight {\n margin-top: 0;\n}\n\n@media (min-width: 768px) {\n .bd-clipboard {\n display: block;\n }\n}\n\n.btn-clipboard {\n position: absolute;\n top: .5rem;\n right: .5rem;\n z-index: 10;\n display: block;\n padding: .25rem .5rem;\n font-size: 75%;\n color: #818a91;\n background-color: transparent;\n border: 0;\n border-radius: 0.25rem;\n}\n\n.btn-clipboard:hover {\n color: #fff;\n background-color: #027de7;\n}\n\n.bd-placeholder-img {\n font-size: 1.125rem;\n text-anchor: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.bd-placeholder-img-lg {\n font-size: 3.5rem;\n}\n\n@media (max-width: 1200px) {\n .bd-placeholder-img-lg {\n font-size: calc(1.475rem + 2.7vw) ;\n }\n}\n\n/* NEW Background .chroma { background-color: #f0f0f0; } */\n/* NEW Error .chroma .err { } */\n/* NEW LineTableTD .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } */\n/* NEW LineTable .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } */\n/* NEW LineHighlight .chroma .hl { display: block; width: 100%; background-color: #ffffcc; } */\n/* NEW LineNumbersTable .chroma .lnt { margin-right: .4em; padding: 0 .4em; } */\n/* NEW LineNumbers .chroma .ln { margin-right: .4em; padding: 0 .4em; } */\n/* LiteralStringDelimiter */\n.chroma .dl {\n color: #4070a0;\n}\n\n/* NEW */\n/* Comment */\n.chroma .c {\n color: #999;\n}\n\n/* CommentMultiline */\n.chroma .c1 {\n color: #999;\n}\n\n/* CommentHashbang */\n.chroma .ch {\n font-style: italic;\n color: #60a0b0;\n}\n\n/* NEW */\n/* CommentMultiline */\n.chroma .cm {\n color: #999;\n}\n\n/* CommentPreproc */\n.chroma .cp {\n color: #099;\n}\n\n/* CommentPreprocFile */\n.chroma .cpf {\n color: #007020;\n}\n\n/* NEW */\n/* CommentSpecial */\n.chroma .cs {\n color: #999;\n}\n\n/* GenericDeleted */\n.chroma .gd {\n background-color: #fcc;\n border: 1px solid #c00;\n}\n\n/* GenericEmph */\n.chroma .ge {\n font-style: italic;\n}\n\n/* GenericHeading */\n.chroma .gh {\n color: #030;\n}\n\n/* GenericInserted */\n.chroma .gi {\n background-color: #cfc;\n border: 1px solid #0c0;\n}\n\n/* GenericUnderline */\n.chroma .gl {\n text-decoration: underline;\n}\n\n/* NEW */\n/* GenericOutput */\n.chroma .go {\n color: #aaa;\n}\n\n/* GenericPrompt */\n.chroma .gp {\n color: #009;\n}\n\n/* GenericError */\n.chroma .gr {\n color: #f00;\n}\n\n/* GenericStrong */\n.chroma .gs {\n font-weight: 700;\n}\n\n/* NEW */\n/* GenericTraceback */\n.chroma .gt {\n color: #9c6;\n}\n\n/* GenericSubheading */\n.chroma .gu {\n color: #030;\n}\n\n/* LiteralNumberIntegerLong */\n.chroma .il {\n color: #f60;\n}\n\n/* Keyword */\n.chroma .k {\n color: #069;\n}\n\n/* KeywordConstant */\n.chroma .kc {\n color: #069;\n}\n\n/* KeywordDeclaration */\n.chroma .kd {\n color: #069;\n}\n\n/* KeywordNamespace */\n.chroma .kn {\n color: #069;\n}\n\n/* KeywordPseudo */\n.chroma .kp {\n color: #069;\n}\n\n/* KeywordReserved */\n.chroma .kr {\n color: #069;\n}\n\n/* KeywordType */\n.chroma .kt {\n color: #078;\n}\n\n/* LiteralNumber */\n.chroma .m {\n color: #f60;\n}\n\n/* LiteralNumberFloat */\n.chroma .mf {\n color: #f60;\n}\n\n/* LiteralNumberBin */\n.chroma .mb {\n color: #40a070;\n}\n\n/* NEW */\n/* LiteralNumberHex */\n.chroma .mh {\n color: #f60;\n}\n\n/* LiteralNumberInteger */\n.chroma .mi {\n color: #f60;\n}\n\n/* LiteralNumberOct */\n.chroma .mo {\n color: #f60;\n}\n\n/* NameAttribute */\n.chroma .na {\n color: #4f9fcf;\n}\n\n/* NameBuiltin */\n.chroma .nb {\n color: #366;\n}\n\n/* NameClass */\n.chroma .nc {\n color: #0a8;\n}\n\n/* NameDecorator */\n.chroma .nd {\n color: #99f;\n}\n\n/* NameException */\n.chroma .ne {\n color: #c00;\n}\n\n/* NameFunction */\n.chroma .nf {\n color: #c0f;\n}\n\n/* NameEntity */\n.chroma .ni {\n color: #999;\n}\n\n/* NameLabel */\n.chroma .nl {\n color: #99f;\n}\n\n/* NameNamespace */\n.chroma .nn {\n color: #0cf;\n}\n\n/* NameConstant */\n.chroma .no {\n color: #360;\n}\n\n/* NameTag */\n.chroma .nt {\n color: #2f6f9f;\n}\n\n/* NameVariable */\n.chroma .nv {\n color: #033;\n}\n\n/* Operator */\n.chroma .o {\n color: #555;\n}\n\n/* OperatorWord */\n.chroma .ow {\n color: #000;\n}\n\n/* LiteralString */\n.chroma .s {\n color: #d44950;\n}\n\n/* LiteralStringSingle */\n.chroma .s1 {\n color: #c30;\n}\n\n/* LiteralStringDouble */\n.chroma .s2 {\n color: #c30;\n}\n\n/* LiteralStringAffix */\n.chroma .sa {\n color: #4070a0;\n}\n\n/* NEW */\n/* LiteralStringBacktick */\n.chroma .sb {\n color: #c30;\n}\n\n/* LiteralStringChar */\n.chroma .sc {\n color: #c30;\n}\n\n/* LiteralStringDoc */\n.chroma .sd {\n font-style: italic;\n color: #c30;\n}\n\n/* LiteralStringEscape */\n.chroma .se {\n color: #c30;\n}\n\n/* LiteralStringHeredoc */\n.chroma .sh {\n color: #c30;\n}\n\n/* LiteralStringInterpol */\n.chroma .si {\n color: #a00;\n}\n\n/* LiteralStringRegex */\n.chroma .sr {\n color: #3aa;\n}\n\n/* LiteralStringSymbol */\n.chroma .ss {\n color: #fc3;\n}\n\n/* LiteralStringOther */\n.chroma .sx {\n color: #c30;\n}\n\n/* TextWhitespace */\n.chroma .w {\n color: #bbb;\n}\n\n.chroma .language-bash::before,\n.chroma .language-sh::before {\n color: #009;\n content: \"$ \";\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.chroma .language-bash .m,\n.chroma .language-sh .m {\n color: inherit;\n}\n\n.chroma .language-powershell::before {\n color: #009;\n content: \"PM> \";\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.anchorjs-link {\n font-weight: 400;\n color: rgba(0, 123, 255, 0.5);\n transition: color 0.15s ease-in-out, opacity 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .anchorjs-link {\n transition: none;\n }\n}\n\n.anchorjs-link:hover {\n color: #007bff;\n text-decoration: none;\n}\n\n.algolia-autocomplete {\n display: block !important;\n flex: 1;\n}\n\n.algolia-autocomplete .ds-dropdown-menu {\n width: 100%;\n min-width: 0 !important;\n max-width: none !important;\n padding: .75rem 0 !important;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n@media (min-width: 768px) {\n .algolia-autocomplete .ds-dropdown-menu {\n width: 175%;\n }\n}\n\n.algolia-autocomplete .ds-dropdown-menu::before {\n display: none !important;\n}\n\n.algolia-autocomplete .ds-dropdown-menu [class^=\"ds-dataset-\"] {\n padding: 0 !important;\n overflow: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n}\n\n.algolia-autocomplete .ds-dropdown-menu .ds-suggestions {\n margin-top: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion {\n padding: 0 !important;\n overflow: visible !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--category-header {\n padding: .125rem 1rem !important;\n margin-top: 0 !important;\n font-size: 0.875rem !important;\n font-weight: 600 !important;\n color: #7952b3 !important;\n border-bottom: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--wrapper {\n float: none !important;\n padding-top: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column {\n float: none !important;\n width: auto !important;\n padding: 0 !important;\n text-align: left !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline {\n display: block !important;\n font-size: 0.875rem;\n color: #495057;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline::after {\n padding: 0 .25rem;\n content: \"/\";\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--content {\n display: flex;\n flex-wrap: wrap;\n float: none !important;\n width: 100% !important;\n padding: .25rem 1rem !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--content::before {\n display: none !important;\n}\n\n.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header {\n padding-top: .75rem !important;\n margin-top: .75rem !important;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column {\n display: none !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--title {\n display: block;\n margin-bottom: 0 !important;\n font-size: 0.875rem !important;\n font-weight: 400 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--text {\n flex: 0 0 100%;\n max-width: 100%;\n padding: .2rem 0;\n font-size: 0.8125rem !important;\n font-weight: 400;\n line-height: 1.25 !important;\n color: #6c757d;\n}\n\n.algolia-autocomplete .algolia-docsearch-footer {\n float: none !important;\n width: auto !important;\n height: auto !important;\n padding: .75rem 1rem 0;\n font-size: 0.75rem !important;\n line-height: 1 !important;\n color: #767676 !important;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.algolia-autocomplete .algolia-docsearch-footer--logo {\n display: inline !important;\n overflow: visible !important;\n color: inherit !important;\n text-indent: 0 !important;\n background: none !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--highlight {\n color: #5f2dab;\n background-color: rgba(154, 132, 187, 0.12);\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {\n box-shadow: inset 0 -2px 0 0 rgba(95, 45, 171, 0.5) !important;\n}\n\n.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content {\n background-color: rgba(208, 189, 236, 0.15) !important;\n}\n/*# sourceMappingURL=docs.min.css.map */",".skippy {\n display: block;\n padding: 1em;\n color: $white;\n text-align: center;\n background-color: $bd-purple;\n outline: 0;\n\n @include hover {\n color: $white;\n }\n}\n\n.skippy-text {\n padding: .5em;\n outline: 1px dotted;\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Right side table of contents\n//\n\n.bd-toc {\n @supports (position: sticky) {\n position: sticky;\n top: 4rem;\n height: calc(100vh - 4rem);\n overflow-y: auto;\n }\n order: 2;\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n @include font-size(.875rem);\n}\n\n// stylelint-disable selector-max-type, selector-max-combinators, selector-max-compound-selectors\n.bd-toc nav {\n padding-left: 0;\n border-left: 1px solid #eee;\n\n > ul,\n > ul > li > ul {\n padding: 0;\n }\n\n a code {\n font: inherit;\n }\n\n li {\n display: block;\n\n ul li ul {\n padding-left: 1rem;\n }\n\n a {\n display: block;\n padding: .125rem 1.5rem;\n color: #77757a;\n\n &:hover {\n color: $blue;\n text-decoration: none;\n }\n }\n }\n}\n// stylelint-enable selector-max-type, selector-max-combinators, selector-max-compound-selectors\n\n//\n// Left side navigation\n//\n\n.bd-sidebar {\n order: 0;\n // background-color: #f5f2f9;\n border-bottom: 1px solid rgba(0, 0, 0, .1);\n\n @include media-breakpoint-up(md) {\n @supports (position: sticky) {\n position: sticky;\n top: 4rem;\n z-index: 1000;\n height: calc(100vh - 4rem);\n }\n border-right: 1px solid rgba(0, 0, 0, .1);\n }\n\n @include media-breakpoint-up(xl) {\n flex: 0 1 320px;\n }\n}\n\n.bd-links {\n padding-top: 1rem;\n padding-bottom: 1rem;\n margin-right: -15px;\n margin-left: -15px;\n\n @include media-breakpoint-up(md) {\n @supports (position: sticky) {\n max-height: calc(100vh - 9rem);\n overflow-y: auto;\n }\n }\n\n // Override collapse behaviors\n @include media-breakpoint-up(md) {\n display: block !important;\n }\n}\n\n.bd-search {\n position: relative; // To contain the Algolia search\n padding: 1rem 15px;\n margin-right: -15px;\n margin-left: -15px;\n border-bottom: 1px solid rgba(0, 0, 0, .05);\n\n .form-control:focus {\n border-color: $bd-purple-bright;\n box-shadow: 0 0 0 3px rgba($bd-purple-bright, .25);\n }\n}\n\n.bd-search-docs-toggle {\n line-height: 1;\n color: $gray-900;\n}\n\n.bd-sidenav {\n display: none;\n}\n\n.bd-toc-link {\n display: block;\n padding: .25rem 1.5rem;\n font-weight: 600;\n color: rgba(0, 0, 0, .65);\n\n &:hover {\n color: rgba(0, 0, 0, .85);\n text-decoration: none;\n }\n}\n\n.bd-toc-item {\n &.active {\n margin-bottom: 1rem;\n\n &:not(:first-child) {\n margin-top: 1rem;\n }\n\n > .bd-toc-link {\n color: rgba(0, 0, 0, .85);\n\n &:hover {\n background-color: transparent;\n }\n }\n\n > .bd-sidenav {\n display: block;\n }\n }\n}\n\n// All levels of nav\n.bd-sidebar .nav > li > a {\n display: block;\n padding: .25rem 1.5rem;\n @include font-size(90%);\n color: rgba(0, 0, 0, .65);\n}\n\n.bd-sidebar .nav > li > a:hover {\n color: rgba(0, 0, 0, .85);\n text-decoration: none;\n background-color: transparent;\n}\n\n.bd-sidebar .nav > .active > a,\n.bd-sidebar .nav > .active:hover > a {\n font-weight: 600;\n color: rgba(0, 0, 0, .85);\n background-color: transparent;\n}\n","//\n// Footer\n//\n\n.bd-footer {\n @include font-size(.875rem);\n text-align: center;\n background-color: #f7f7f7;\n\n a {\n font-weight: 600;\n color: $gray-700;\n\n &:hover,\n &:focus {\n color: $link-color;\n }\n }\n\n p {\n margin-bottom: 0;\n }\n\n @include media-breakpoint-up(sm) {\n text-align: left;\n }\n}\n\n.bd-footer-links {\n padding-left: 0;\n margin-bottom: 1rem;\n\n li {\n display: inline-block;\n\n + li {\n margin-left: 1rem;\n }\n }\n}\n","// stylelint-disable no-duplicate-selectors, selector-no-qualifying-type\n\n//\n// Grid examples\n//\n\n.bd-example-row {\n .row {\n > .col,\n > [class^=\"col-\"] {\n padding-top: .75rem;\n padding-bottom: .75rem;\n background-color: rgba(86, 61, 124, .15);\n border: 1px solid rgba(86, 61, 124, .2);\n }\n }\n\n .row + .row {\n margin-top: 1rem;\n }\n\n .flex-items-top,\n .flex-items-middle,\n .flex-items-bottom {\n min-height: 6rem;\n background-color: rgba(255, 0, 0, .1);\n }\n}\n\n.bd-example-row-flex-cols .row {\n min-height: 10rem;\n background-color: rgba(255, 0, 0, .1);\n}\n\n.bd-highlight {\n background-color: rgba($bd-purple, .15);\n border: 1px solid rgba($bd-purple, .15);\n}\n\n// Grid mixins\n.example-container {\n width: 800px;\n @include make-container();\n}\n\n.example-row {\n @include make-row();\n}\n\n.example-content-main {\n @include make-col-ready();\n\n @include media-breakpoint-up(sm) {\n @include make-col(6);\n }\n\n @include media-breakpoint-up(lg) {\n @include make-col(8);\n }\n}\n\n.example-content-secondary {\n @include make-col-ready();\n\n @include media-breakpoint-up(sm) {\n @include make-col(6);\n }\n\n @include media-breakpoint-up(lg) {\n @include make-col(4);\n }\n}\n\n\n//\n// Container illustrations\n//\n\n.bd-example-container {\n min-width: 16rem;\n max-width: 25rem;\n margin-right: auto;\n margin-left: auto;\n}\n\n.bd-example-container-header {\n height: 3rem;\n margin-bottom: .5rem;\n background-color: lighten($blue, 50%);\n @include border-radius;\n}\n\n.bd-example-container-sidebar {\n float: right;\n width: 4rem;\n height: 8rem;\n background-color: lighten($blue, 25%);\n @include border-radius;\n}\n\n.bd-example-container-body {\n height: 8rem;\n margin-right: 4.5rem;\n background-color: lighten($bd-purple, 25%);\n @include border-radius;\n}\n\n.bd-example-container-fluid {\n max-width: none;\n}\n\n\n//\n// Docs examples\n//\n\n.bd-example {\n position: relative;\n padding: 1rem;\n margin: 1rem (-$grid-gutter-width / 2) 0;\n border: solid $gray-100;\n border-width: .2rem 0 0;\n @include clearfix();\n\n @include media-breakpoint-up(sm) {\n padding: 1.5rem;\n margin-right: 0;\n margin-left: 0;\n border-width: .2rem;\n }\n\n + .highlight,\n + .clipboard + .highlight {\n margin-top: 0;\n }\n\n + p {\n margin-top: 2rem;\n }\n\n .pos-f-t {\n position: relative;\n margin: -1rem;\n\n @include media-breakpoint-up(sm) {\n margin: -1.5rem;\n }\n }\n\n .custom-file-input:lang(es) ~ .custom-file-label::after {\n content: \"Elegir\";\n }\n\n > .form-control {\n + .form-control {\n margin-top: .5rem;\n }\n }\n\n > .nav + .nav,\n > .alert + .alert,\n > .navbar + .navbar,\n > .progress + .progress,\n > .progress + .btn {\n margin-top: 1rem;\n }\n\n > .dropdown-menu:first-child {\n position: static;\n display: block;\n }\n\n > .form-group:last-child {\n margin-bottom: 0;\n }\n\n > .close {\n float: none;\n }\n}\n\n// Typography\n.bd-example-type {\n .table {\n td {\n padding: 1rem 0;\n border-color: #eee;\n }\n tr:first-child td {\n border-top: 0;\n }\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n// Contextual background colors\n.bd-example-bg-classes p {\n padding: 1rem;\n}\n\n// Images\n.bd-example {\n > svg + svg,\n > img + img {\n margin-left: .5rem;\n }\n}\n\n// Buttons\n.bd-example {\n > .btn,\n > .btn-group {\n margin-top: .25rem;\n margin-bottom: .25rem;\n }\n > .btn-toolbar + .btn-toolbar {\n margin-top: .5rem;\n }\n}\n\n// Forms\n.bd-example-control-sizing select,\n.bd-example-control-sizing input[type=\"text\"] + input[type=\"text\"] {\n margin-top: .5rem;\n}\n.bd-example-form .input-group {\n margin-bottom: .5rem;\n}\n.bd-example > textarea.form-control {\n resize: vertical;\n}\n\n// List groups\n.bd-example > .list-group {\n max-width: 400px;\n}\n.bd-example > [class*=\"list-group-horizontal\"] {\n max-width: 100%;\n}\n\n// Navbars\n.bd-example {\n .fixed-top,\n .sticky-top {\n position: static;\n margin: -1rem -1rem 1rem;\n }\n .fixed-bottom {\n position: static;\n margin: 1rem -1rem -1rem;\n }\n\n @include media-breakpoint-up(sm) {\n .fixed-top,\n .sticky-top {\n margin: -1.5rem -1.5rem 1rem;\n }\n .fixed-bottom {\n margin: 1rem -1.5rem -1.5rem;\n }\n }\n}\n\n// Pagination\n.bd-example .pagination {\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n// Example modals\n.modal {\n z-index: 1072;\n\n .tooltip,\n .popover {\n z-index: 1073;\n }\n}\n\n.modal-backdrop {\n z-index: 1071;\n}\n\n.bd-example-modal {\n background-color: #fafafa;\n\n .modal {\n position: relative;\n top: auto;\n right: auto;\n bottom: auto;\n left: auto;\n z-index: 1;\n display: block;\n }\n\n .modal-dialog {\n left: auto;\n margin-right: auto;\n margin-left: auto;\n }\n}\n\n// Example tabbable tabs\n.bd-example-tabs .nav-tabs {\n margin-bottom: 1rem;\n}\n\n// Popovers\n.bd-example-popover-static {\n padding-bottom: 1.5rem;\n background-color: #f9f9f9;\n\n .popover {\n position: relative;\n display: block;\n float: left;\n width: 260px;\n margin: 1.25rem;\n }\n}\n\n// Tooltips\n.tooltip-demo a {\n white-space: nowrap;\n}\n\n.bd-example-tooltip-static .tooltip {\n position: relative;\n display: inline-block;\n margin: 10px 20px;\n opacity: 1;\n}\n\n// Scrollspy demo on fixed height div\n.scrollspy-example {\n position: relative;\n height: 200px;\n margin-top: .5rem;\n overflow: auto;\n}\n\n.scrollspy-example-2 {\n position: relative;\n height: 350px;\n overflow: auto;\n}\n\n.bd-example-border-utils {\n [class^=\"border\"] {\n display: inline-block;\n width: 5rem;\n height: 5rem;\n margin: .25rem;\n background-color: #f5f5f5;\n }\n}\n\n.bd-example-border-utils-0 {\n [class^=\"border\"] {\n border: 1px solid $border-color;\n }\n}\n\n//\n// Code snippets\n//\n\n.highlight {\n padding: 1rem;\n margin-top: 1rem;\n margin-bottom: 1rem;\n background-color: $gray-100;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n\n @include media-breakpoint-up(sm) {\n padding: 1.5rem;\n }\n}\n\n.bd-content .highlight {\n margin-right: (-$grid-gutter-width / 2);\n margin-left: (-$grid-gutter-width / 2);\n\n @include media-breakpoint-up(sm) {\n margin-right: 0;\n margin-left: 0;\n }\n}\n\n.highlight {\n pre {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n background-color: transparent;\n border: 0;\n }\n pre code {\n @include font-size(inherit);\n color: $gray-900; // Effectively the base text color\n }\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","// Buttons\n//\n// Custom buttons for the docs.\n\n.btn-bd-primary {\n font-weight: 600;\n color: $bd-purple-bright;\n border-color: $bd-purple-bright;\n\n &:hover,\n &:active {\n color: $white;\n background-color: $bd-purple-bright;\n border-color: $bd-purple-bright;\n }\n\n &:focus {\n box-shadow: 0 0 0 3px rgba($bd-purple-bright, .25);\n }\n}\n\n.btn-bd-download {\n font-weight: 600;\n color: $bd-download;\n border-color: $bd-download;\n\n &:hover,\n &:active {\n color: $bd-dark;\n background-color: $bd-download;\n border-color: $bd-download;\n }\n\n &:focus {\n box-shadow: 0 0 0 3px rgba($bd-download, .25);\n }\n}\n","//\n// Callouts\n//\n\n.bd-callout {\n padding: 1.25rem;\n margin-top: 1.25rem;\n margin-bottom: 1.25rem;\n border: 1px solid #eee;\n border-left-width: .25rem;\n @include border-radius;\n\n h4 {\n margin-top: 0;\n margin-bottom: .25rem;\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n\n code {\n @include border-radius;\n }\n\n + .bd-callout {\n margin-top: -.25rem;\n }\n}\n\n// Variations\n@mixin bs-callout-variant($color) {\n border-left-color: $color;\n\n h4 { color: $color; }\n}\n\n.bd-callout-info { @include bs-callout-variant($bd-info); }\n.bd-callout-warning { @include bs-callout-variant($bd-warning); }\n.bd-callout-danger { @include bs-callout-variant($bd-danger); }\n","// Wall of Browser Bugs\n//\n// Better display for the responsive table on the Wall of Browser Bugs.\n\n.bd-browser-bugs {\n th:first-child {\n width: 18%;\n }\n}\n","//\n// Brand guidelines\n//\n\n// Logo series wrapper\n.bd-brand-logos {\n display: table;\n width: 100%;\n margin-bottom: 1rem;\n overflow: hidden;\n color: $bd-purple;\n background-color: #f9f9f9;\n @include border-radius;\n\n .inverse {\n color: $white;\n background-color: $bd-purple;\n }\n}\n\n// Individual items\n.bd-brand-item {\n padding: 4rem 0;\n text-align: center;\n\n + .bd-brand-item {\n border-top: 1px solid $white;\n }\n\n // Heading content within\n h1,\n h3 {\n margin-top: 0;\n margin-bottom: 0;\n }\n\n @include media-breakpoint-up(md) {\n display: table-cell;\n width: 1%;\n\n + .bd-brand-item {\n border-top: 0;\n border-left: 1px solid $white;\n }\n\n h1 {\n @include font-size(4rem);\n }\n }\n}\n\n\n//\n// Color swatches\n//\n\n.color-swatches {\n margin: 0 -5px;\n overflow: hidden; // clearfix\n\n // Docs colors\n .bd-purple {\n background-color: $bd-purple;\n }\n .bd-purple-light {\n background-color: $bd-purple-light;\n }\n .bd-purple-lighter {\n background-color: #e5e1ea;\n }\n .bd-gray {\n background-color: #f9f9f9;\n }\n}\n\n.color-swatch {\n float: left;\n width: 4rem;\n height: 4rem;\n margin-right: .25rem;\n margin-left: .25rem;\n @include border-radius;\n\n @include media-breakpoint-up(md) {\n width: 6rem;\n height: 6rem;\n }\n}\n","//\n// Docs color palette classes\n//\n\n@each $color, $value in $colors {\n .swatch-#{$color} {\n color: color-yiq($value);\n background-color: #{$value};\n }\n}\n\n@each $color, $value in $theme-colors {\n .swatch-#{$color} {\n color: color-yiq($value);\n background-color: #{$value};\n }\n}\n\n@each $color, $value in $grays {\n .swatch-#{$color} {\n color: color-yiq($value);\n background-color: #{$value};\n }\n}\n","// clipboard.js\n//\n// JS-based `Copy` buttons for code snippets.\n\n.bd-clipboard {\n position: relative;\n display: none;\n float: right;\n\n + .highlight {\n margin-top: 0;\n }\n\n @include media-breakpoint-up(md) {\n display: block;\n }\n}\n\n.btn-clipboard {\n position: absolute;\n top: .5rem;\n right: .5rem;\n z-index: 10;\n display: block;\n padding: .25rem .5rem;\n @include font-size(75%);\n color: #818a91;\n background-color: transparent;\n border: 0;\n @include border-radius;\n\n &:hover {\n color: $white;\n background-color: #027de7;\n }\n}\n","//\n// Placeholder svg used in the docs.\n//\n\n// Remember to update `site/_layouts/examples.html` too if this changes!\n\n.bd-placeholder-img {\n @include font-size(1.125rem);\n text-anchor: middle;\n user-select: none;\n}\n\n.bd-placeholder-img-lg {\n @include font-size(3.5rem);\n}\n","// stylelint-disable comment-empty-line-before, declaration-block-single-line-max-declarations, selector-class-pattern\n\n/* NEW Background .chroma { background-color: #f0f0f0; } */\n/* NEW Error .chroma .err { } */\n/* NEW LineTableTD .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } */\n/* NEW LineTable .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } */\n/* NEW LineHighlight .chroma .hl { display: block; width: 100%; background-color: #ffffcc; } */\n/* NEW LineNumbersTable .chroma .lnt { margin-right: .4em; padding: 0 .4em; } */\n/* NEW LineNumbers .chroma .ln { margin-right: .4em; padding: 0 .4em; } */\n\n/* LiteralStringDelimiter */ .chroma .dl { color: #4070a0; } /* NEW */\n/* Comment */ .chroma .c { color: #999; }\n/* CommentMultiline */ .chroma .c1 { color: #999; }\n/* CommentHashbang */ .chroma .ch { font-style: italic; color: #60a0b0; } /* NEW */\n/* CommentMultiline */ .chroma .cm { color: #999; }\n/* CommentPreproc */ .chroma .cp { color: #099; }\n/* CommentPreprocFile */ .chroma .cpf { color: #007020; } /* NEW */\n/* CommentSpecial */ .chroma .cs { color: #999; }\n/* GenericDeleted */ .chroma .gd { background-color: #fcc; border: 1px solid #c00; }\n/* GenericEmph */ .chroma .ge { font-style: italic; }\n/* GenericHeading */ .chroma .gh { color: #030; }\n/* GenericInserted */ .chroma .gi { background-color: #cfc; border: 1px solid #0c0; }\n/* GenericUnderline */ .chroma .gl { text-decoration: underline; } /* NEW */\n/* GenericOutput */ .chroma .go { color: #aaa; }\n/* GenericPrompt */ .chroma .gp { color: #009; }\n/* GenericError */ .chroma .gr { color: #f00; }\n/* GenericStrong */ .chroma .gs { font-weight: 700; } /* NEW */\n/* GenericTraceback */ .chroma .gt { color: #9c6; }\n/* GenericSubheading */ .chroma .gu { color: #030; }\n/* LiteralNumberIntegerLong */ .chroma .il { color: #f60; }\n/* Keyword */ .chroma .k { color: #069; }\n/* KeywordConstant */ .chroma .kc { color: #069; }\n/* KeywordDeclaration */ .chroma .kd { color: #069; }\n/* KeywordNamespace */ .chroma .kn { color: #069; }\n/* KeywordPseudo */ .chroma .kp { color: #069; }\n/* KeywordReserved */ .chroma .kr { color: #069; }\n/* KeywordType */ .chroma .kt { color: #078; }\n/* LiteralNumber */ .chroma .m { color: #f60; }\n/* LiteralNumberFloat */ .chroma .mf { color: #f60; }\n/* LiteralNumberBin */ .chroma .mb { color: #40a070; } /* NEW */\n/* LiteralNumberHex */ .chroma .mh { color: #f60; }\n/* LiteralNumberInteger */ .chroma .mi { color: #f60; }\n/* LiteralNumberOct */ .chroma .mo { color: #f60; }\n/* NameAttribute */ .chroma .na { color: #4f9fcf; }\n/* NameBuiltin */ .chroma .nb { color: #366; }\n/* NameClass */ .chroma .nc { color: #0a8; }\n/* NameDecorator */ .chroma .nd { color: #99f; }\n/* NameException */ .chroma .ne { color: #c00; }\n/* NameFunction */ .chroma .nf { color: #c0f; }\n/* NameEntity */ .chroma .ni { color: #999; }\n/* NameLabel */ .chroma .nl { color: #99f; }\n/* NameNamespace */ .chroma .nn { color: #0cf; }\n/* NameConstant */ .chroma .no { color: #360; }\n/* NameTag */ .chroma .nt { color: #2f6f9f; }\n/* NameVariable */ .chroma .nv { color: #033; }\n/* Operator */ .chroma .o { color: #555; }\n/* OperatorWord */ .chroma .ow { color: #000; }\n/* LiteralString */ .chroma .s { color: #d44950; }\n/* LiteralStringSingle */ .chroma .s1 { color: #c30; }\n/* LiteralStringDouble */ .chroma .s2 { color: #c30; }\n/* LiteralStringAffix */ .chroma .sa { color: #4070a0; } /* NEW */\n/* LiteralStringBacktick */ .chroma .sb { color: #c30; }\n/* LiteralStringChar */ .chroma .sc { color: #c30; }\n/* LiteralStringDoc */ .chroma .sd { font-style: italic; color: #c30; }\n/* LiteralStringEscape */ .chroma .se { color: #c30; }\n/* LiteralStringHeredoc */ .chroma .sh { color: #c30; }\n/* LiteralStringInterpol */ .chroma .si { color: #a00; }\n/* LiteralStringRegex */ .chroma .sr { color: #3aa; }\n/* LiteralStringSymbol */ .chroma .ss { color: #fc3; }\n/* LiteralStringOther */ .chroma .sx { color: #c30; }\n/* TextWhitespace */ .chroma .w { color: #bbb; }\n\n.chroma {\n .language-bash,\n .language-sh {\n &::before {\n color: #009;\n content: \"$ \";\n user-select: none;\n }\n\n // This is just to work around a Chroma bug;\n // should be removed when fixed upstream\n .m {\n color: inherit;\n }\n }\n\n .language-powershell::before {\n color: #009;\n content: \"PM> \";\n user-select: none;\n }\n}\n",".anchorjs-link {\n font-weight: 400;\n color: rgba($link-color, .5);\n @include transition(color .15s ease-in-out, opacity .15s ease-in-out);\n\n &:hover {\n color: $link-color;\n text-decoration: none;\n }\n}\n","// stylelint-disable property-blacklist\n@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n\n @if $enable-prefers-reduced-motion-media-query {\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Docsearch overrides\n//\n// `!important` indicates overridden properties.\n.algolia-autocomplete {\n display: block !important;\n flex: 1;\n\n // Menu container\n .ds-dropdown-menu {\n width: 100%;\n min-width: 0 !important;\n max-width: none !important;\n padding: .75rem 0 !important;\n background-color: $white;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, .1);\n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .175);\n\n @include media-breakpoint-up(md) {\n width: 175%;\n }\n\n // Caret\n &::before {\n display: none !important;\n }\n\n [class^=\"ds-dataset-\"] {\n padding: 0 !important;\n overflow: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n }\n\n .ds-suggestions {\n margin-top: 0 !important;\n }\n }\n\n .algolia-docsearch-suggestion {\n padding: 0 !important;\n overflow: visible !important;\n }\n\n .algolia-docsearch-suggestion--category-header {\n padding: .125rem 1rem !important;\n margin-top: 0 !important;\n @include font-size(.875rem, true);\n font-weight: 600 !important;\n color: $bd-purple-bright !important;\n border-bottom: 0 !important;\n }\n\n .algolia-docsearch-suggestion--wrapper {\n float: none !important;\n padding-top: 0 !important;\n }\n\n // Section header\n .algolia-docsearch-suggestion--subcategory-column {\n float: none !important;\n width: auto !important;\n padding: 0 !important;\n text-align: left !important;\n }\n\n .algolia-docsearch-suggestion--subcategory-inline {\n display: block !important;\n @include font-size(.875rem);\n color: $gray-700;\n\n &::after {\n padding: 0 .25rem;\n content: \"/\";\n }\n }\n\n .algolia-docsearch-suggestion--content {\n display: flex;\n flex-wrap: wrap;\n float: none !important;\n width: 100% !important;\n padding: .25rem 1rem !important;\n\n // Vertical divider between column header and content\n &::before {\n display: none !important;\n }\n }\n\n .ds-suggestion {\n &:not(:first-child) {\n .algolia-docsearch-suggestion--category-header {\n padding-top: .75rem !important;\n margin-top: .75rem !important;\n border-top: 1px solid rgba(0, 0, 0, .1);\n }\n }\n\n .algolia-docsearch-suggestion--subcategory-column {\n display: none !important;\n }\n }\n\n .algolia-docsearch-suggestion--title {\n display: block;\n margin-bottom: 0 !important;\n @include font-size(.875rem, true);\n font-weight: 400 !important;\n }\n\n .algolia-docsearch-suggestion--text {\n flex: 0 0 100%;\n max-width: 100%;\n padding: .2rem 0;\n @include font-size(.8125rem, true);\n font-weight: 400;\n line-height: 1.25 !important;\n color: $gray-600;\n }\n\n .algolia-docsearch-footer {\n float: none !important;\n width: auto !important;\n height: auto !important;\n padding: .75rem 1rem 0;\n @include font-size(.75rem, true);\n line-height: 1 !important;\n color: #767676 !important;\n border-top: 1px solid rgba(0, 0, 0, .1);\n }\n\n .algolia-docsearch-footer--logo {\n display: inline !important;\n overflow: visible !important;\n color: inherit !important;\n text-indent: 0 !important;\n background: none !important;\n }\n\n .algolia-docsearch-suggestion--highlight {\n color: #5f2dab;\n background-color: rgba(154, 132, 187, .12);\n }\n\n .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {\n box-shadow: inset 0 -2px 0 0 rgba(95, 45, 171, .5) !important;\n }\n\n .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content {\n background-color: rgba(208, 189, 236, .15) !important;\n }\n}\n"]}
\ No newline at end of file diff --git a/site/static/docs/4.3/assets/js/docs.min.js b/site/static/docs/4.3/assets/js/docs.min.js index a48c8413d8..0ea0993e03 100644 --- a/site/static/docs/4.3/assets/js/docs.min.js +++ b/site/static/docs/4.3/assets/js/docs.min.js @@ -19,4 +19,4 @@ * Licensed under the Creative Commons Attribution 3.0 Unported License. * For details, see https://creativecommons.org/licenses/by/3.0/. */ -(function(){"use strict";function t(t){return[].slice.call(t)}t(document.querySelectorAll(".tooltip-demo")).forEach(function(t){new bootstrap.Tooltip(t,{selector:'[data-toggle="tooltip"]'})});t(document.querySelectorAll('[data-toggle="popover"]')).forEach(function(t){new bootstrap.Popover(t)});t(document.querySelectorAll(".toast")).forEach(function(t){var e=new bootstrap.Toast(t,{autohide:false});e.show()});t(document.querySelectorAll(".tooltip-test")).forEach(function(t){new bootstrap.Tooltip(t)});t(document.querySelectorAll(".popover-test")).forEach(function(t){new bootstrap.Popover(t)});t(document.querySelectorAll('.bd-example-indeterminate [type="checkbox"]')).forEach(function(t){t.indeterminate=true});t(document.querySelectorAll('.bd-content [href="#"]')).forEach(function(t){t.addEventListener("click",function(t){t.preventDefault()})});var e=document.getElementById("exampleModal");if(e){e.addEventListener("show.bs.modal",function(t){var n=t.relatedTarget;var o=n.getAttribute("data-whatever");var r=e.querySelector(".modal-title");var i=e.querySelector(".modal-body input");r.innerHTML="New message to "+o;i.value=o})}t(document.querySelectorAll(".bd-toggle-animated-progress > .progress-bar-striped")).forEach(function(t){t.addEventListener("click",function(){if(t.classList.contains("progress-bar-animated")){t.classList.remove("progress-bar-animated")}else{t.classList.add("progress-bar-animated")}})});var n='<div class="bd-clipboard"><button type="button" class="btn-clipboard" title="Copy to clipboard">Copy</button></div>';t(document.querySelectorAll("figure.highlight, div.highlight")).forEach(function(t){t.insertAdjacentHTML("beforebegin",n)});t(document.querySelectorAll(".btn-clipboard")).forEach(function(t){var e=new bootstrap.Tooltip(t);t.addEventListener("mouseleave",function(){e.hide()})});var o=new ClipboardJS(".btn-clipboard",{target:function(t){return t.parentNode.nextElementSibling}});o.on("success",function(t){var e=bootstrap.Tooltip._getInstance(t.trigger);t.trigger.setAttribute("title","Copied!");e._fixTitle();e.show();t.trigger.setAttribute("title","Copy to clipboard");e._fixTitle();t.clearSelection()});o.on("error",function(t){var e=/Mac/i.test(navigator.userAgent)?"⌘":"Ctrl-";var n="Press "+e+"C to copy";var o=bootstrap.Tooltip._getInstance(t.trigger);t.trigger.setAttribute("title",n);o._fixTitle();o.show();t.trigger.setAttribute("title","Copy to clipboard");o._fixTitle()});anchors.options={icon:"#"};anchors.add(".bd-content > h2, .bd-content > h3, .bd-content > h4, .bd-content > h5");t(document.querySelectorAll(".bd-content > h2, .bd-content > h3, .bd-content > h4, .bd-content > h5")).forEach(function(t){t.innerHTML='<span class="bd-content-title">'+t.innerHTML+"</span>"});bsCustomFileInput.init()})();(function(){"use strict";if(!window.docsearch){return}var t=document.getElementById("search-input");var e=t.getAttribute("data-docs-version");function n(){var t=window.location;var e=t.origin;if(!e){var n=t.port?":"+t.port:"";e=t.protocol+"//"+t.hostname+n}return e}window.docsearch({apiKey:"5990ad008512000bba2cf951ccf0332f",indexName:"bootstrap",inputSelector:"#search-input",algoliaOptions:{facetFilters:["version:"+e]},transformData:function(t){return t.map(function(t){var e=n();var o=/^https?:\/\/getbootstrap\.com/;t.url=e.match(o)?t.url:t.url.replace(o,"");if(t.anchor==="content"){t.url=t.url.replace(/#content$/,"");t.anchor=null}return t})},debug:false})})();
\ No newline at end of file +(function(){"use strict";function t(t){return[].slice.call(t)}t(document.querySelectorAll(".tooltip-demo")).forEach(function(t){new bootstrap.Tooltip(t,{selector:'[data-toggle="tooltip"]'})});t(document.querySelectorAll('[data-toggle="popover"]')).forEach(function(t){new bootstrap.Popover(t)});t(document.querySelectorAll(".toast")).forEach(function(t){var e=new bootstrap.Toast(t,{autohide:false});e.show()});t(document.querySelectorAll(".tooltip-test")).forEach(function(t){new bootstrap.Tooltip(t)});t(document.querySelectorAll(".popover-test")).forEach(function(t){new bootstrap.Popover(t)});t(document.querySelectorAll('.bd-example-indeterminate [type="checkbox"]')).forEach(function(t){t.indeterminate=true});t(document.querySelectorAll('.bd-content [href="#"]')).forEach(function(t){t.addEventListener("click",function(t){t.preventDefault()})});var e=document.getElementById("exampleModal");if(e){e.addEventListener("show.bs.modal",function(t){var n=t.relatedTarget;var o=n.getAttribute("data-whatever");var r=e.querySelector(".modal-title");var i=e.querySelector(".modal-body input");r.innerHTML="New message to "+o;i.value=o})}t(document.querySelectorAll(".bd-toggle-animated-progress > .progress-bar-striped")).forEach(function(t){t.addEventListener("click",function(){if(t.classList.contains("progress-bar-animated")){t.classList.remove("progress-bar-animated")}else{t.classList.add("progress-bar-animated")}})});var n='<div class="bd-clipboard"><button type="button" class="btn-clipboard" title="Copy to clipboard">Copy</button></div>';t(document.querySelectorAll("figure.highlight, div.highlight")).forEach(function(t){t.insertAdjacentHTML("beforebegin",n)});t(document.querySelectorAll(".btn-clipboard")).forEach(function(t){var e=new bootstrap.Tooltip(t);t.addEventListener("mouseleave",function(){e.hide()})});var o=new ClipboardJS(".btn-clipboard",{target:function(t){return t.parentNode.nextElementSibling}});o.on("success",function(t){var e=bootstrap.Tooltip._getInstance(t.trigger);t.trigger.setAttribute("title","Copied!");e._fixTitle();e.show();t.trigger.setAttribute("title","Copy to clipboard");e._fixTitle();t.clearSelection()});o.on("error",function(t){var e=/Mac/i.test(navigator.userAgent)?"⌘":"Ctrl-";var n="Press "+e+"C to copy";var o=bootstrap.Tooltip._getInstance(t.trigger);t.trigger.setAttribute("title",n);o._fixTitle();o.show();t.trigger.setAttribute("title","Copy to clipboard");o._fixTitle()});anchors.options={icon:"#"};anchors.add(".bd-content > h2, .bd-content > h3, .bd-content > h4, .bd-content > h5");t(document.querySelectorAll(".bd-content > h2, .bd-content > h3, .bd-content > h4, .bd-content > h5")).forEach(function(t){t.innerHTML='<span class="bd-content-title">'+t.innerHTML+"</span>"});bsCustomFileInput.init()})();(function(){"use strict";if(!window.docsearch){return}var t=document.getElementById("search-input");var e=t.getAttribute("data-docs-version");function n(){var t=window.location;var e=t.origin;if(!e){var n=t.port?":"+t.port:"";e=t.protocol+"//"+t.hostname+n}return e}window.docsearch({apiKey:"5990ad008512000bba2cf951ccf0332f",indexName:"bootstrap",inputSelector:"#search-input",algoliaOptions:{facetFilters:["version:"+e]},transformData:function(t){return t.map(function(t){var e=n();var o="https://getbootstrap.com";t.url=e.indexOf(o)!==-1?t.url:t.url.replace(o,"");if(t.anchor==="content"){t.url=t.url.replace(/#content$/,"");t.anchor=null}return t})},debug:false})})();
\ No newline at end of file |